Доктрина DQL: условие левого соединения - PullRequest
4 голосов
/ 05 августа 2011

У меня есть схема «один ко многим»: на столе много счетов. Можно ли получить все записи Desk с некоторыми записями Билла.

Я пытаюсь сделать это:

//DeskTable.class.php

public function getDesks()
{
    $q = $this->createQuery('d')
      ->leftJoin('d.Bills b')
      ->where('b.is_open = ?', true);

    return $q->execute();
}

Но я получаю список столов с открытыми счетами, тогда как мне нужны все столы. Это возможно?

Я совершенно не такой уж и дурацкий парень, поэтому, пожалуйста, потерпите меня.

1 Ответ

10 голосов
/ 05 августа 2011

Используйте ключевое слово Doctrine WITH ( документы здесь ):

$q = $this->createQuery('d')
  ->leftJoin('d.Bills b WITH b.is_open = ?', true)

return $q->execute();
...