2016-02-26 56 views
0

我在Doctrine中有两个实体:oneToMany在Post和Comments之间。评论由用户拥有。我想检索所有帖子和评论,其中至少一个评论是由某个用户拥有的。用Doctrine的查询生成器来实现这一点的正确方法是什么?DQL:加入表并返回所有结果,当至少有一个加入的列满足条件

$em->createQueryBuilder('p') 
    ->innerJoin('p.comments','c') 
    ->having(AT LEAST ON c.user = :user) 
    ->where(p.id = :idPost) 

你能帮助我吗?

回答

1

这里是一个解决方案:

$query = $em->createQueryBuilder('p') 
    ->leftJoin('p.comments','c') 
    ->where('c.user = :user') 
    ->andwhere('p.id = :idPost') 
    ->setParameter('idPost', '1') 
    ->setParameter('user', 'Toto') 
; 

return $query->getQuery()->getResult(); 
+0

你好,这不是问题的关键。如果我设置了用户= toto,我将只有消息的所有者是toto,但我希望所有的消息连接到我的帖子,其中至少有一个属于toto ... – user2626210

相关问题