doctrine 2查询构建器和连接表

kos*_*dpo 19 left-join query-builder doctrine-orm

我想在我的主页上为每个帖子收到所有评论

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

但是我收到了这个错误

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

PS:映射是正确的,因为我可以看到页面文章及其注释.

can*_*era 37

如果这仍然给您带来问题,请使用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;
Run Code Online (Sandbox Code Playgroud)