这是我从db:
中检索用户的代码$qb = $this->createQueryBuilder('c');
$qb->select('c.username')
->where('c.username LIKE :term')
->setParameter('term', '%' . $term . '%')
->where('c.roles LIKE :role')
->setParameter('role', '%"ROLE_COM"%');
$arrayAss = $qb->getQuery()
->getArrayResult();
我想只选择具有admin角色的用户,但没有任何作用。
寻求帮助
答案 0 :(得分:0)
尝试使用isGranted('ROLE_ADMIN')
方法。
答案 1 :(得分:0)
问题以这种方式解决了:
$qb->select('c.username')
->where('c.username LIKE :term AND c.roles LIKE :role')
->setParameter('term', '%' . $term . '%')
->andWhere('c.roles LIKE :role')
->setParameter('role', '%"ROLE_COM"%')
;
答案 2 :(得分:0)
角色param不应该有引号,第二个“where”应该是“andWhere”。试试这样它应该有效。
$qb->select('c.username')
->where('c.username LIKE :term')
->setParameter('term', '%' . $term . '%')
->andWhere('c.roles LIKE :role') // andWhere for second conditional
->setParameter('role', '%ROLE_COM%'); // Lose the quotes here.
$arrayAss = $qb->getQuery()
->getArrayResult();