Bonjour,
Dans un script Ajax, je cherche le département auquel appartient une localité. Cependant, il arrive que certains pays ne possèdent pas de département, et donc que cette recherche ne retourne rien.
Or, en exécutant mon script, j'obtiens une erreur 500 lorsque je n'ai aucun département retourné. Voici mon code :
Voici la fonction getDepartementsByElem($idElemInit, $typeElemInit) qui recherche le(s) département(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 ... $listeDepartements = null; ... $listeDepartements = $em->getRepository('HotelsGestionAnnoncesBundle:Departement')->getDepartementsByElem($idElemInit, $typeElemInit); $retour = ''; if(!empty($listeDepartements)) { foreach($listeDepartements as $departement) { $retour .= $departement->getId() . '_' . $departement->getNom() . '+'; } ...
Voici le détail de l'erreur que j'obtiens :
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 public function getDepartementsByElem($idElemInit, $typeElemInit) { $em = $this->getEntityManager(); switch($typeElemInit) { case 'localite': $obj = $em->getRepository('HotelsGestionAnnoncesBundle:Localite')->find($idElemInit); break; case 'commune': $obj = $em->getRepository('HotelsGestionAnnoncesBundle:Commune')->find($idElemInit); break; case 'province': $obj = $em->getRepository('HotelsGestionAnnoncesBundle:Province')->find($idElemInit); break; case 'region': $obj = $em->getRepository('HotelsGestionAnnoncesBundle:Region')->find($idElemInit); break; default: $obj = $em->getRepository('HotelsGestionAnnoncesBundle:Pays')->find($idElemInit); break; } $retour = array(); if($typeElemInit == 'localite') { $retour[] = $obj->getCommune()->getDepartement(); } elseif($typeElemInit == 'commune' || $typeElemInit == 'province') { $retour[] = $obj->getDepartement(); } else { $retour = $obj->getDepartements(); } return $retour; }
.abbr title="Proxies\HotelsGestionAnnoncesBundleEntityDepartementProxy">HotelsGestionAnnoncesBundleEntityDepartementProxy</abbr>
->getId
</strong>
()
<br />
in C:\wamp\www\Symfony\src\Hotels\GestionAnnoncesBundle\Controller\DepartementController.php at line 218
La ligne 218 est la suivante :
Donc, apparemment, $listeDepartements n'est pas considéré comme étant vide, vu que le foreach est éxécuté. Quelqu'un aurait une idée?
Code : Sélectionner tout - Visualiser dans une fenêtre à part $retour .= $departement->getId() . '_' . $departement->getNom() . '+';
Merci d'avance pour votre aide
Partager