我需要像这样的QueryBuilder
构造DQL
[QUERY]... AND WHERE e.type = x OR e.type = Y OR e.type = N [...]
我在数组中有类型如何将该数组传递给查询构建器?
$qb->andWhere($qb->expr()->orx(CONDITIONS));
类型列表将是动态的,在每个foreach类型循环上调用
$qb->andWhere
只会产生更多AND,而没有OR。我可以存储多个orx
表达式,然后将其添加到andWhere
吗?任何想法如何解决这个可能是常见的问题? 最佳答案
我希望如此,然后我发现了这一点:
$conditions = array('e.type = x', 'e.type = Y', 'e.type = N');
$orX = $qb->expr()->orX();
foreach ($conditions as $condition) {
$orX->add($condition);
}
$qb->add('where', $orX);
使用@meze建议,您可以简化代码并将foreach语句替换为:
$orX->addMultiple($conditions);
关于php - 将条件数组传递给 Doctrine expr()-> orx()方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11704447/