Doctrine + Postgres — как составить QueryBuilder с поиском по JSON?

Есть рабочий SQL запрос:
SELECT * FROM "user" WHERE "roles"::text = '["ROLE_COURIER"]';


Нужно составить его на QueryBuilder.

Если написать так:
$role = '["ROLE_COURIER"]';

        return $this->createQueryBuilder('user')
            ->where('user.roles = :role')
            ->setParameter('role', $role)
            ->getQuery()
            ->getResult()
            ;

Выдает ошибку:
SQLSTATE[42883]: Undefined function: 7 ERROR: operator does not exist: json = unknown


Если написать так:
$role = '["ROLE_COURIER"]';

        return $this->createQueryBuilder('user')
            ->where('"roles"::text = :role')
            ->setParameter('role', $role)
            ->getQuery()
            ->getResult()
            ;

Выдает ошибку:
[Syntax Error] line 0, col 44: Error: Expected Literal, got '"'


Не могу разобраться - так как правильно составить запрос с условием по полю json?
  • Вопрос задан
  • 2898 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы