Доктрина findBy type = "json" - PullRequest
       11

Доктрина findBy type = "json"

0 голосов
/ 03 апреля 2019

Могу ли я запросить базу данных по ролям?

В базе данных у меня есть роли столбцов типа json, и я храню такие данные ["ROLE_ADMIN"]

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

$user = $this->getDoctrine()
            ->getRepository(User::class)
            ->findBy(['roles' => 'ROLE_ADMIN');

1 Ответ

1 голос
/ 03 апреля 2019

В вашем UserRepository создайте метод, который использует оператор like для поиска пользователя по роли.Вот так например:

class UserRepository extends EntityRepository
{
    public function findUsersByRole($role)
    {
        $qb = $this->createQueryBuilder('u');
        $qb->select('u')
            ->where('u.roles LIKE :roles')
            ->setParameter('roles', '%"'.$role.'"%');

        return $qb->getQuery()->getResult();
    }
}
...