在控制器中,我需要按角色is_granted进行测试,但它不起作用,因为我需要为所有ROLE_ADMIN.i尝试这个但没有结果的所有人创建通知:$admins=$em->getRepository('RegisterUserBundle:User')->findByRoles("ROLE_ADMIN");
但没有结果。
答案 0 :(得分:1)
我认为findByRoles
中没有默认的FOSUserBundle
方法。
我想你应该在UserRepository中添加一个方法,如:
<?php
public function findByRole($role) {
$qb = $this->_em->createQueryBuilder();
$qb->select('u')
->from($this->_entityName, 'u')
->where('u.roles LIKE :roles')
->setParameter('roles', '%"' . $role . '"%');
return $qb->getQuery()->getResult();
}
然后在你的控制器中使用方法:
$users = $em->getRepository('YourUserBundle:User')->findByRole('ROLE_ADMIN');