Могут ли Doctrine QueryBuilder и Where() использоваться без where()?

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

1 ответ

Решение

Да, это будет работать. where() удаляет любые другие критерии перед добавлением отправленных, а andWhere() добавляет к AND выражение с любыми существующими критериями.

Другие вопросы по тегам