modification de données: dans un formulaire avec imbrication
Bonjour,
je vais faire simple:
-une table User = nom, prénom
-une table adresse = ville , rue, code postal
-reliées OneToMany ( un utilisateur peut avoir plusieurs adresses )
Je suis capable d'afficher les données dans un formulaire, pour faire une modification, mais si je change un champ de l'adresse, comment récupérer ce champ via
le formulaire pour faire un flush ?
mon Builder pour le formulaire:
Code:
1 2 3 4 5 6 7 8 9
|
->add('firstName')
->add('lastName')
->add('phoneNumber')
->add('address', CollectionType::class, [
'entry_type' => AddressType::class,
'entry_options' => ['label' => false],
])
->add('Enregistrer', SubmitType::class) |
et ma fonction edit dans mon controller:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| /**
* @Route("/profile/{id<[0-9]+>}/edit", name="app_user_edit")
*/
public function edit(Request $request, User $user)
{
$form = $this->createForm(UserType::class, $user);
$form->handleRequest($request);
if ($form->isSubmitted() and $form->isValid()) {
$this->entityManager->flush($user);
$url = '/profile' . '/' . $user->getId();
return $this->redirect($url);
}
return $this->render('user/edit.html.twig', [
'formEdit' => $form->createView(),
'user' => $user,
]);
} |
Donc pour l'instant, je peux modifier un champ du user, et il sera modifié en BDD.
mais pour un champ adresse, je ne sais pas par où passer et comment récupérer la modification.
Laurent