Как сделать query_builder из raw sql - PullRequest
0 голосов
/ 07 марта 2020

Мне нужна помощь, чтобы преобразовать этот код в построитель запросов в Symfony 5.

$em = $this->getEntityManager();
$query = "SELECT * FROM fizuser where roles::text LIKE  :role";
$statement = $em->getConnection()->prepare($query);
$statement->bindValue('role', '%'.$role.'%');
$statement->execute();
$result = $statement->fetchAll();
return $result;

Вот что я пробовал:

function (UserRepository $er) {
  return $er->createQueryBuilder('u')
  ->where("u.roles :: text like '%a%'");

Однако я могу не используйте тег "::".

Ответы [ 2 ]

0 голосов
/ 07 марта 2020

Я хотел бы добавить некоторые детали, тип столбца в psql равен json. Использование этого типа построителя запросов дает мне ошибку

SQLSTATE[42883]: Undefined function: 7 ERROR: operator does not exist: json ~~ unknown
LINE 1: ...ted AS activated_25 FROM fizuser f0_ WHERE f0_.roles LIKE $1
0 голосов
/ 07 марта 2020

Вы можете сделать это с -

return $this->createQueryBuilder('u')
            ->andWhere('u.roles LIKE :role')
            ->setParameter('role', '%'.'a'.'%')
            ->getQuery()
            ->getResult();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...