[Symfony 2 - DQL] Where, andWhere et orWhere
Salut a tous, alors voila je n'ai pas l'habitude de DQL et j'aurais besoin de votre aide pour une requête =)
Contexte:
Dans une de mes applications je fait un système de réservation de salles de réunion pour mon entreprise, j'ai donc deux classes une classe Salle et une classe Reservation.
Les salles sont une propriété de réservation (oneToMany), j'ai donc dans chaque instance de réservation, une instance de la salle associée.
Dans une requête, je veux ressortir toutes les réservations comprises entre deux dates (pour ça aucun problème) et aussi d'une sélection de salles. par exemple:
J'ai 4 salles (Salle1, Salle2, ...) et je veux ressortir les réservations des salles 1 et 3.
Voici ma requête: (le tout est dans Project\ReservationsSallesBundle\Entity\ReservationRepository)
Code:
1 2 3 4 5 6 7 8
|
$qb = $this->createQueryBuilder('r');
$qb->where('r.debut BETWEEN :debut and :fin')
->setParameter('debut', $start)
->setParameter('fin', $end);
$qb = $this->filterSalles($qb, $salles);//$salles = Un array d'instances de salles
$resObjects = $qb->getQuery()->getResult(); |
et ma fonction filterSalles:
Code:
1 2 3 4 5 6 7 8 9
|
private function filterSalles($qb, $salles){
if($salles != null){
foreach ($salles as $s => $value) {
$qb->orWhere('r.salle = ?', $value); //c'est cette ligne qui me pose problème
}
}
return $qb;
} |
Et pour finir mon message d'erreur:
Citation:
"Expression of type 'Project\ReservationsSallesBundle\Entity\Salle' not allowed in this context"
En espérant avoir donné assez d'infos, merci d'avance =)