2013-04-24 95 views
2

在Doctrine中,使用QueryBuilder建立查詢時,是否必須使用$qb->where()定義第一個where子句,或者是否可以直接使用$qb->andWhere()。例如,這是有效的:可以在沒有where()的情況下使用Doctrine QueryBuilder和Where()?

$qb->select('Mystuff\Entity\User','u'); 
$qb->andWhere('usertype = :usertype'); 
$qb->andWhere('usercategory = :usercategory'); 

,或作爲更相關的例子:

$filter = array('usertype'=>'basic','usercategory'=>'business'); 
$qb->select('Mystuff\Entity\User','u'); 
foreach ($filter as $fkey => $fval) { 
    $qb->andWhere($fkey.' = :'.$fval); 
} 

回答

6

是,將工作。 where()刪除任何其他標準,然後再添加提交的標準,而andWhere()附加到具有任何現有標準的AND表達式。

相關問題