3

在 Doctrine 中,当使用 QueryBuilder 构建查询时,第一个where子句是否必须定义$qb->where()或者我可以$qb->andWhere()直接使用。例如,这是否有效:

$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);
}
4

1 回答 1

7

是的,这会奏效。where()在添加提交的条件之前删除任何其他条件,同时andWhere()附加到AND具有任何现有条件的表达式。

于 2013-07-22T09:22:09.950 回答