Doctrine 2 построитель запросов и таблицы соединений - PullRequest
18 голосов
/ 07 ноября 2011

Я пытаюсь получить все комментарии для каждого поста на моей домашней странице

return 
$this->createQueryBuilder('c')
->select('c')
->from('Sdz\BlogBundle\Entity\Commentaire' ,'c')                
->leftJoin('a.comments' ,'c')->getQuery()->getResult() ;

но я получаю эту ошибку

[Semantical Error] line 0, col 58 near '.comments c,': Error:
Identification Variable a used in join path expression but was not defined before.

PS: отображение верное, потому что я вижу страницу статьи с ее комментариями.

1 Ответ

37 голосов
/ 07 ноября 2011

Если это все еще создает проблемы, вот ваш запрос с использованием синтаксиса, приведенного в примерах из документации Doctrine 2.1.

Я предполагаю, что ваш запрос находится в пользовательском методе хранилища, и это«a» - это сокращение от «Article».

$em = $this->getEntityManager();
$qb = $em->createQueryBuilder();

$qb->select(array('a', 'c'))
   ->from('Sdz\BlogBundle\Entity\Article', 'a')
   ->leftJoin('a.comments', 'c');

$query = $qb->getQuery();
$results = $query->getResult();

return $results;
...