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 php : Sélectionner tout - Visualiser dans une fenêtre à part
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 php : Sélectionner tout - Visualiser dans une fenêtre à part
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