我需要像这样的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/

10-12 02:14