Доктрина - возвращать результаты с определенным типом - PullRequest
1 голос
/ 04 июля 2019

В моей базе данных есть данные, которые я определил по полю "type", например:

const TYPE_ONE = 'one';
const TYPE_TYPE = 'two';

Я хочу вернуть все результаты, в которых я определил значение "type", указанное в этих двух константахи не все из них.(типа (NULL)).

Кажется, оператор ИЛИ не поддерживается.

Мой код:

return $this->getMyEntityRepository()->findBy([
            'type' => MyEntity::TYPE_ONE || MyEntity::TYPE_TWO
        ]);

1 Ответ

0 голосов
/ 04 июля 2019

OR поддерживается оператор , но в доктрине вы должны создать метод в вашем хранилище для запросов такого типа.

Repository:

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();

Также вы можете указать параметр для типов для поиска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...