Tableau considéré comme non vide
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 :
Code:
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 la fonction getDepartementsByElem($idElemInit, $typeElemInit) qui recherche le(s) département(s) :
Code:
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;
} |
Voici le détail de l'erreur que j'obtiens :
Citation:
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 :
Code:
$retour .= $departement->getId() . '_' . $departement->getNom() . '+';
Donc, apparemment, $listeDepartements n'est pas considéré comme étant vide, vu que le foreach est éxécuté. Quelqu'un aurait une idée?
Merci d'avance pour votre aide