Bonjour,
J'ai un petit soucis (je m'arrache les cheveux) de formulaire imbriqué. J'ai deux entités, Utilisateur, qui hérite de User du UserBundle, et Info_Membre, qui sont toutes les deux en relations one to one, Info_Membre possédant la relation.
J'ai donc voulu faire un formulaire imbriqué pour l'inscription puisque Info_Membre contient le nom et le prénom de l'utilisateur. J'ai créé une fonction inscriptionAction() dans le controller associé et ait produit mon formulaire.
Pourtant je sèche au moment de traiter mon formulaire, je ne peux pas utiliser bêtement persist($info_membre->getUtilisateur()) puisqu'il doit y avoir un traitement des données (mot de passe crypté, usernameCanonical, ...) et je ne pense pas non plus pouvoir faire appel à registerAction().
Quelqu'un saurait résoudre ce problème?
EDIT :
Je viens de trouver une solution mais elle n'est pas très belle.
Dans FOS\UserBundle\Form\Handler\RegistrationFormHandler.php j'ai rajouté un getter :
et du coup dans mon UtilisateurController je peux faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 getUserManager() { return $this->userManager; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 $formHandler = $this->container->get('fos_user.registration.form.handler'); $um = $formHandler->getUserManager(); $info_membre = $form->getData(); $utilisateur = $info_membre->getUtilisateur(); $um->updateUser($utilisateur); $em = $this->getDoctrine()->getEntityManager(); $em->persist($info_membre); $em->persist($utilisateur); $em->flush();
Partager