Bonjour,
Entre deux entités, Departement et Pays, j'ai une relation ManyToOne bidirectionnelle. Pour effectuer cela, j'ai utilisé les annotations :
Departement.php
Pays.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ... /** * @ORM\ManyToOne(targetEntity="Hotels\GestionAnnoncesBundle\Entity\Pays", inversedBy="departements") * @ORM\JoinColumn(name="pays_id", referencedColumnName="id") * @Assert\NotNull() */ private $pays; ...
Dans un script Ajax, je tente de mettre à jour la liste des départements en fonction du Pays sélectionné. Pour cela j'ai la fonction suivante dans mon controller :
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 ... /** * @ORM\OneToMany(targetEntity="Pays", mappedBy="pays") */ protected $departements; ... public function __construct() { $this->departements = new ArrayCollection(); } ... /** * Get departements * * @return entity Departement */ public function getDepartements() { return $this->departements; } ...
Je voudrais parcourir $departements afin de construire une chaîne de type "idDepartement_nomDepartement+idDepartement_nomDepartement+...' à la place de '5' pour pouvoir l'utiliser et reconstruire mon select dans mon javascript. Je ne sais pas comment parcourir cet arrayCollection pour récupérer les informations voulues.
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 public function departementsByPaysAction() { $request = $this->container->get('request'); if($request->isXmlHttpRequest()) { $idPays = $request->request->get('idPays'); $em = $this->container->get('doctrine')->getEntityManager(); $pays = $em->getRepository('HotelsGestionAnnoncesBundle:Pays')->find($idPays); $departements = $pays->getDepartements(); return new \Symfony\Component\HttpFoundation\Response('5'); } }
Merci d'avance pour votre aide.
Partager