Bonjour,
j'ai surchargé le formulaire d'inscription du FOSUserBundle afin d'ajouter d'autres champs (certains issus de relation entre Entities). Lors de la validation, j'ai une erreur résultant du fait que le FOSUserBundle ne persiste que mon entity User (avec les champs que j'ai ajoutés dans cette Entity) mais il ne persiste pas les Entities liées.
Voici les codes des formulaires (3 sont imbriqués) :
Code : 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
22
23
24
25
26
27
28
29
30
31
32
33 <?php namespace projet\UserBundle\Form\Type; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; use FOS\UserBundle\Form\Type\RegistrationFormType as BaseType; class UserType extends BaseType { public function buildForm(FormBuilder $builder, array $options) { parent::buildForm($builder, $options); $builder ->add('username', null, array('attr' => array('class' => 'inputText'))) ->add('email', null, array('attr' => array('class' => 'inputText'))) ->add('user_nom', null, array('attr' => array('class' => 'inputText'))) ->add('user_prenom', null, array('attr' => array('class' => 'inputText'))) ->add('user_tel_travail', null, array('attr' => array('class' => 'inputText'))) ->add('user_fo', new UserFoType) ; } public function getDefaultOptions(array $options) { return array( 'data_class' => 'projet\UserBundle\Entity\User', ); } public function getName() { return 'projet_user_registration'; } }
Code : 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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 <?php namespace projet\UserBundle\Form\Type; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; class UserFoType extends AbstractType { public function buildForm(FormBuilder $builder, array $options) { $builder->add('ufo_date_naissance', 'birthday', array('widget' => 'single_text', 'input' => 'datetime', 'format' => 'dd/MM/yyyy', 'read_only' => true, 'attr' => array('class' => 'inputText'))) ->add('ufo_ref_locataire', null, array('attr' => array('class' => 'inputText'))) ->add('ufo_tel_portable', null, array('attr' => array('class' => 'inputText'))) ->add('ufo_tel_domicil', null, array('attr' => array('class' => 'inputText'))) ->add('ufo_tcp_id', 'entity', array('class' => 'projet\FrontOfficeBundle\Entity\Type_contact_privilegie')) ->add('ufo_log_id', 'collection', array('type' => new LogementType(), 'allow_add' => true, 'prototype' => true, 'attr' => array('class' => 'form_added'))) ; } public function getDefaultOptions(array $options) { return array( 'data_class' => 'projet\UserBundle\Entity\User_fo', ); } public function getName() { return 'UserFo'; } }Est-ce que le fait qu'il ne persiste pas mes Entities User_fo et Logement est normal ?
Code : 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
22
23
24
25
26
27
28
29
30
31
32
33
34
35 <?php namespace projet\UserBundle\Form\Type; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; use projet\BackOfficeBundle\Form\Type\BailType; class LogementType extends AbstractType { public function buildForm(FormBuilder $builder, array $options) { $builder ->add('log_bailleur', 'entity', array('class' => 'projet\BackOfficeBundle\Entity\Bailleur')) ->add('log_adresse', null, array('attr' => array('class' => 'inputText'))) ->add('log_commune', null, array('empty_value' => 'Choisir une commune', 'empty_data' => '-1')) ->add('log_code_postal', null, array('read_only' => true, 'attr' => array('class' => 'inputText'))) ->add('log_etage', null, array('attr' => array('class' => 'inputText'))) ->add('log_numero', null, array('attr' => array('class' => 'inputText'))) ->add('log_description', 'textarea') ; } public function getDefaultOptions(array $options) { return array( 'data_class' => 'projet\BackOfficeBundle\Entity\Logement', ); } public function getName() { return 'projet_userBundle_logementType'; } }
Suis-je obligé de passer par la surcharge du FormHandler pour persister mes 3 Entities lors de la soumission du formulaire par un utilisateur ?
Merci d'avance
Partager