Bonjour,
J'essaie actuellement de valider un formulaire où je créé un entité qui va être lié à deux autre entité déjà existante.
en fait j'ai une classe Space qui à un Type et un User.
Je précise que ma classe User est hérité du FOSUserBundle.
Pour plus de clarté je vais donner ma classe Space :
mon probléme est que lors de la création de mon formulaire je voudrais afficher 2 listes déroulantes avec dans une les type et dans l'autre les users.
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 class Space { /** * @ORM\GeneratedValue * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @ORM\Column(type="string",length="45") * @Assert\NotBlank() */ private $name; / //--------Jenlève les attribut inintéressant / /** * @ORM\ManyToOne(targetEntity="Type") */ private $type; /** * @ORM\ManyToOne(targetEntity="app\UserBundle\Entity\User", inversedBy="Space") * @ORM\JoinColumn(name="user_id", referencedColumnName="id") * * @var User $User */ private $user;
Pour la liste déroulante de Type pas de soucis mais pour la liste des users j'obtiens l'erreur suivante:
voila mon formulaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part request.CRITICAL: ErrorException: Catchable Fatal Error: Argument 1 passed to app\MainBundle\Entity\Space::setUser() must be an instance of app\UserBundle\Entity\User, null given, called in xxxxxxxx\project\vendor\symfony\src\Symfony\Component\Form\Util\PropertyPath.php on line 346 and defined in xxxxxxxxx\project\src\app\MainBundle\Entity\Space.php line 224 (uncaught exception) at xxxxxxx\project\vendor\symfony\src\Symfony\Component\HttpKernel\Debug\ErrorHandler.php line 65 [] []
merci d'avance
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 use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; class SpaceType extends AbstractType { public function buildForm(FormBuilder $builder, array $options) { $builder ->add('name') // // // ->add('type', 'entity',array('class' => 'appMainBundle:Type','property' => 'libelle')) ->add('user', 'entity',array('class' => 'appUserBundle:User','property' => 'id')) ; } public function getName() { return 'app_mainbundle_spacetype'; } public function getDefaultOptions(array $options) { return array( 'data_class' => 'app\MainBundle\Entity\Space', ); } }
Partager