如何使用或在教义中的位置返回具有ROLE_ADMIN和ROLE_USER

时间:2019-03-21 09:08:45

标签: php symfony doctrine repository symfony4

我想返回拥有ROLE_ADMINROLE_USER的用户

我已经在存储库中这样做了:

return $this->createQueryBuilder('u')
        ->where('u.roles IN (:val)')
        ->setParameter('val','["ROLE_ADMIN","ROLE_USER"]')
        ->getQuery()
        ->getResult();

但是什么也没返回... 如何解决这个问题?

  

ps:我有一个ROLES用户:ROLE_ADMIN和ROLE_USER

1 个答案:

答案 0 :(得分:1)

要使用“教义2”中的“或”,

return $this->createQueryBuilder('u')
        ->where('u.roles LIKE :val')
        ->setParameter('val','%ROLE_ADMIN%')
        ->orWhere('u.roles LIKE :val2')
        ->setParameter('val2', '%ROLE_USER%')
        ->getQuery()
        ->getResult();

还可以这样使用:

return $this->createQueryBuilder('u')
        ->where('u.roles LIKE :val')
        ->orWhere('u.roles LIKE :val2')
        ->setParameters(array('val2' => '%ROLE_USER%', 'val' => '%ROLE_ADMIN%'))
        ->getQuery()
        ->getResult();