Могут ли 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
выражение с любыми существующими критериями.