Bonjour,
Dans un formulaire, je fais appel à une méthode d'un repository de cette manière :
Voici la méthode que j'ai écrite pour une question de ré-utilisabilité :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ->add('localite','entity', array('class'=>'Hotels\GestionAnnoncesBundle\Entity\Localite', 'query_builder' => function(LocaliteRepository $er) use ($region) { return $er->getLocalitesByElem($region->getId(), 'region'); }, 'required' => false)) ;
Cependant, j'obtiens cette erreur :
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
37
38
39
40
41
42
43
44
45
46
47
48 public function getLocalitesByElem($idElemInit, $typeElemInit) { $em = $this->getEntityManager(); switch($typeElemInit) { case 'commune': $obj = $em->getRepository('HotelsGestionAnnoncesBundle:Commune')->find($idElemInit); break; case 'province': $obj = $em->getRepository('HotelsGestionAnnoncesBundle:Province')->find($idElemInit); break; case 'departement': $obj = $em->getRepository('HotelsGestionAnnoncesBundle:Departement')->find($idElemInit); break; case 'region': $obj = $em->getRepository('HotelsGestionAnnoncesBundle:Region')->find($idElemInit); break; default: $obj = $em->getRepository('HotelsGestionAnnoncesBundle:Pays')->find($idElemInit); break; } if($typeElemInit == 'commune') { $localites = $obj->getLocalites(); } else { $communes = $obj->getCommunes(); $localites = array(); foreach ($communes as $com) { foreach ($com->getLocalites() as $locByCom) { $localites[] = $locByCom; } } } return $localites; }
Comment pourrais-je exploiter mon array retourné dans mon formulaire pour assigner le tableau d'objets au champ 'localite'?Expected argument of type "Doctrine\ORM\QueryBuilder", "array" given
Merci d'avance pour votre aide.
Partager