在 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);
}

最佳答案

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

关于doctrine - 可以在没有 where() 的情况下使用 Doctrine QueryBuilder andWhere() 吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16185797/

10-11 22:29