学说 findBy type="json"

Doctrine findBy type="json"

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

在数据库中,我有列角色类型 json 并像这样存储数据 ["ROLE_ADMIN"]

如何通过学说查询?我把这段代码用下来了,没用。

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

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