【发布时间】:2018-10-08 23:33:39
【问题描述】:
我想用 Doctrine Criteria 创建一个相当复杂和灵活的查询。我有一个andWhere,它包含在每个查询中,但是(取决于输入)我想用orWhere 添加一些可选参数。
$criteria = Criteria::create();
/* Add Criteria for last 55 Days (every query) */
$criteria->where(Criteria::expr()->gte('gameCreation', $long));
/* Gather optional Params */
$orxList = array();
/* Optional Criteria */
if (!empty($champions)) {
foreach ($champions as $c) {
$orxList[] = Criteria::expr()->eq('champion',$c);
}
}
...
$criteria->andWhere(Criteria::expr()->orX($orxList));
这会导致异常:
CompositeExpression 没有表达式。
我如何将这样的标准与最初的 where 子句结合起来?
【问题讨论】:
-
我发现这很好,但是如果
orWhere是可选的并且查询需要“扩展”,我需要创建一个类似$sql .= 'OR champion = ?的字符串查询。这似乎不对?
标签: php symfony doctrine criteria