2013-03-08 40 views
11

使用以下时只有最后一个where被添加到我的查询;多个使用QueryBuilder的地方

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

$qb->select(array('qi')) 
    ->from('Table:Qi', 'qi') 
    ->where("qi.content = " . $content->getId()) 
    ->where("qi.queue = " . $child->getQueue()->getId()); 

我不得不这样做,使之采取两种

$qb->select(array('qi')) 
    ->from('Table:Qi', 'qi') 
    ->where("qi.content = " . $content->getId() . 
       " AND qi.queue = " . $child->getQueue()->getId()); 

通知这看起来不正确?如何使用第一种方法与多个where调用?

回答

20

您可以使用->andWhere这样的:

->where("qi.content = " . $content->getId()) 
->andWhere("qi.queue = " . $child->getQueue()->getId()); 
+0

精湛 - 谢谢你 – 2013-03-08 20:21:57

+0

你居然不** **需要使用' - > where'之前'andWhere'。你可以一直使用' - >和Where();' – xDaizu 2016-05-09 14:19:33