Мне нужно написать запрос с несколькими условиями where
и OR
. Это условие OR
имеет место только тогда, когда массив $location
не пуст. Поэтому параметры нужны только тогда, когда этот массив не пустой.
Я не уверен, как написать условие этого параметра в этом условии.
Это запрос, над которым я работаю.
$qb = $this->createQueryBuilder("e")
->select(
"e.vehicleId",
"e.schemaId",
"e.location",
)
->andWhere("e.vehicleId = :vehicleId")
->andWhere("e.optionId = :optionId")
->andWhere("e.schemaId = :schemaId");
if (count($position) > 0) {
$qb->andWhere($qb->expr()->orX(
$qb->expr()->andX("e.location = :location"),
$qb->expr()->andX("e.location = :loc")
));
}
$qb->setParameters(array(
"vehicleId" => $vehicleId,
"schemaId" => $schemaId,
"location" => $position["location"],
"loc" => $position["loc"],
));