Bonjour à tous,
Pour mon site internet, j'ai du réaliser un "ManyToMany" à la main car mon entité reçoit des champs personnalisés. De plus, le "ManyToMany" pointe vers lui-même (self-referencing). Pour expliquer simplement : j'ai une page permettant d'ajouter des modules (ça, ça fonctionne) et quand j'ajoute des modules, je peux sélectionner des modules précédemment enregistrés pour les lier.
Voici mon entité module AdministrationBundle\Entity\Module :
Voici mon entité module AdministrationBundle\Entity\ModuleModuleLie (la table de jointure) :
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 ... /** * @ORM\OneToMany(targetEntity="AdministrationBundle\Entity\ModuleModuleLie", mappedBy="moduleLie", cascade={"persist"}) */ private $modules; public function addModule(\AdministrationBundle\Entity\ModuleModuleLie $module) { $this->modules[] = $module; $module->setModule($this); return $this; } public function removeModule(\AdministrationBundle\Entity\ModuleModuleLie $module) { $this->modules->removeElement($module); } ...
Enfin, j'ai mon formulaire qui s'affiche correctement en listant notamment les modules préalablement enregistré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 ... /** * @ORM\ManyToOne(targetEntity="AdministrationBundle\Entity\Module") */ protected $module; /** * @ORM\ManyToOne(targetEntity="AdministrationBundle\Entity\Module", inversedBy="modules") */ protected $moduleLie; public function setModule(\AdministrationBundle\Entity\Module $module) { $this->module = $module; } public function getModule() { return $this->module; } public function setModuleLie(\AdministrationBundle\Entity\Module $module) { $this->moduleLie = $module; } public function getModuleLie() { return $this->moduleLie; } ...
Cependant, lors de la validation j'ai cette erreur que je ne parviens pas à résoudre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $builder ... ->add('modules', 'entity', array( 'class' => 'AdministrationBundle\Entity\Module', 'property' => 'libelle', 'multiple' => true, 'expanded' => true, 'required' => true, 'label' => 'Module(s) importé(s)' ) );
" Found entity of type AdministrationBundle\Entity\Module on association AdministrationBundle\Entity\Module#modules, but expecting AdministrationBundle\Entity\ModuleModuleLie "
Quelqu'un a une idée ?
Merci d'avance![]()
Partager