Как использовать orWhere в Doctrine | Возврат пользователя с ROLE_ADMIN и ROLE_USER

Я хочу вернуть пользователя, у которого есть ROLE_ADMIN и ROLE_USER

Я сделал это в репозитории:

return $this->createQueryBuilder('u')
        ->where('u.roles IN (:val)')
        ->setParameter('val','["ROLE_ADMIN","ROLE_USER"]')
        ->getQuery()
        ->getResult();

Но ничего не возвращается... Как решить эту проблему?

ps: I have a user with ROLES : ROLE_ADMIN and ROLE_USER

Та же проблема..

Khalil 21.03.2019 10:13

это пример пользователя: [{"roles":["ROLE_ADMIN","ROLE_USER"]}]

Khalil 21.03.2019 10:51
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы использовать orWhere в Doctrine 2:

return $this->createQueryBuilder('u')
        ->where('u.roles LIKE :val')
        ->setParameter('val','%ROLE_ADMIN%')
        ->orWhere('u.roles LIKE :val2')
        ->setParameter('val2', '%ROLE_USER%')
        ->getQuery()
        ->getResult();

Также вы можете использовать так:

return $this->createQueryBuilder('u')
        ->where('u.roles LIKE :val')
        ->orWhere('u.roles LIKE :val2')
        ->setParameters(array('val2' => '%ROLE_USER%', 'val' => '%ROLE_ADMIN%'))
        ->getQuery()
        ->getResult();

Спасибо. Это работает, но как, если мне нужно больше ролей, а не только ROLE_ADMIN? Например u.roles Like %ROLE_ADMIN% или %ROLE_USER% => Как это сделать?

Khalil 23.03.2019 13:46

Другие вопросы по теме