ich habe:Lehre NICHT IN Abfrage
$from = new \DateTime($from);
$to = new \DateTime($to);
$qb = $this->em->createQueryBuilder();
$reservations = $qb
->select('rr.id')
->from('\Model\Reservation', 're')
->join('re.rooms', 'rr')
->where('(re.fromDate < ?1 AND re.toDate <= ?2 AND re.toDate > ?1) OR (re.fromDate >= ?1 AND re.fromDate < ?2)')
->setParameters(array(1 => $from, 2 => $to))
->getQuery()
->getResult();
Und ich habe Ergebnis:
array(2) { [0]=> array(1) { ["id"]=> int(2) } [1]=> array(1) { ["id"]=> int(2) } }
Ich möchte Abfrage wie SELECT mit Lehre schreiben ... WO NICHT IN erste Abfrage, aber die Abfrage :
$rooms = $qb->select('ro')
->from('\Model\Room', 'ro')
->where($qb->expr()->notIn('ro.id', $reservations))
->getQuery()
->getResult();
geben Sie mir Fehler:
ERROR: Invalid parameter number: number of bound variables does not match number of tokens
Hilf mir bitte.
Was ist '$ reservations' aussieht? –
Feld (2) {[0] => Feld (1) {["id"] => int (2)} [1] => Feld (1) {["id"] => int (2)} }. –