Docrine2 был изменен в 2013 году, поэтому другое решение отображает ошибку Error: Cannot add having condition on a non result variable.
Теперь мы не можем использовать объединенный псевдоним просто как условную переменную. Мы должны использовать любое из его свойств, таких как c.id
Так что вы должны исправить код на
$qb->select('p', 'c')
->from('AcmeDemoBundle:POI', 'p')
->leftJoin('p.cities', 'c')
->where('c.id IS NOT NULL');
$results = $qb->getQuery()->execute();
Если вы хотите выбрать объекты, которые не имеют городов, используйте IS NULL
.
$qb->leftJoin('p.cities', 'city')
->where('city.id IS NULL')
->getQuery()
->execute();
Описание проблемы и ссылка на коммит, ответственный за это - http://www.doctrine -project.org / jira / browse / DDC-2780