В моей БД у меня есть данные, которые я определил по полю "тип", например:
const TYPE_ONE = 'one';
const TYPE_TYPE = 'two';
Я хочу вернуть все результаты, в которых я определил значение «типа», заданное этими двумя константами, а не всеми из них. (например, тип (NULL)).
Кажется, оператор ИЛИ не поддерживается.
Мой код:
return $this->getMyEntityRepository()->findBy([
'type' => MyEntity::TYPE_ONE || MyEntity::TYPE_TWO
]);






OR оператор поддерживается, но в доктрине вы должны создать метод в своем репозитории для таких запросов.
Репозиторий:
class MyEntityRepository extends ServiceEntityRepository
{
public function findByType()
{
return $this->createQueryBuilder('r')
->andWhere('r.type IN (:types)')
->setParameter('types', [MyEntity::TYPE_ONE, MyEntity::TYPE_TWO])
->getQuery()
->getResult()
;
}
}
Контроллер:
return $this->getMyEntityRepository()->findByType();
Также вы можете указать параметр для типов, которые нужно искать.