2 回答
TA贡献1155条经验 获得超0个赞
QueryBuilder有两种方法来设置查询参数。
您正在使用的那个 ( setParameters(array $parameters),并且更简单setParameter($parameterName, $parameterValue).
使用后者而不是您正在使用的那个,您可以在需要的地方设置参数:
if (count($position) > 0) {
$qb->andWhere($qb->expr()->orX(
$qb->expr()->andX("e.location = :location"),
$qb->expr()->andX("e.location = :loc")
))
->setParameter('location', $position["location"])
->setParameter('loc', $position["loc"]);
}
TA贡献1780条经验 获得超1个赞
您可以创建包含条件参数的 parameteR 数组。
if (count($position) > 0) {
$qb->andWhere($qb->expr()->orX(
$qb->expr()->andX("e.location = :location"),
$qb->expr()->andX("e.location = :loc")
));
$parameter["location"] = $position["location"];
$parameter["loc"] = $position["loc"];
}
然后将这个参数数组传递并合并到 setParameters 方法中。
$qb->setParameters(array_merge(
array(
"vehicleId" => $vehicleId,
"schemaId" => $schemaId,
),
$parameters
));
- 2 回答
- 0 关注
- 99 浏览
添加回答
举报