教义findBy type =“ json”

时间:2019-04-03 14:39:05

标签: symfony doctrine symfony4

我可以按角色查询数据库吗?

在数据库中,我具有列角色类型json并存储这样的数据 [“ ROLE_ADMIN”]

我如何通过学说进行查询?我把这段代码用完了,不起作用。

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

1 个答案:

答案 0 :(得分:1)

在您的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();
    }
}