2016-02-26 53 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

相關問題