Bonjour,

J'ai besoin d'aide pour effectuer une requête de type Select COUNT avec le query builder.

J'ai une table/entité Hotel et une table/entité Chambre

Pour récupérer et compter le nombre de chambres pour chaque hôtel, je fais la requête suivante en sql classique :

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
select h.*, count(c.id)
from hotel h
join chambre c
on c.hotel_id=h.id
where h.ville_id=ville_id
group by h.id

ça marche niquel !

Mais sous symfony, pour faire la même chose avec le querybuilder, c'est un vrai calvaire :

Dans le repository Hotel, je mets le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
$qb= $this->createQueryBuilder('h');
 
		        $qb->addSelect('COUNT(c.id)')
                        ->join('h.chambres','c')
                        ->where('h.ville = :ville')
                        ->groupBy('c.hotel')
			->setParameter('ville',$ville)
                        ->getQuery()->getResult();
Et lorsque dans mes vues j'essaie d'afficher les informations de chaque hotel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
{{hotel.nom }}, {{hotel.classment }}
je reçois l'exception suivante :

Key "nom" for array with keys "0, 1" does not exist in EuropeVoyageBundle::listeHotels.html.twig at line 9
J'aurais grand besoin d'aide pour identifier et régler mon problème