Php 条令和FOSUserBundle-根据用户的角色显示用户

Php 条令和FOSUserBundle-根据用户的角色显示用户,php,symfony,doctrine-orm,fosuserbundle,Php,Symfony,Doctrine Orm,Fosuserbundle,我需要能够在分页表中显示所有ROLE_ADMIN和ROLE_SUPER_ADMIN用户。我使用Doctrine的findBy()方法在表中正确显示了每个人,但我对如何按角色过滤有点困惑。角色保存为DC2Type:array,角色数据本身看起来有点像JSON: a:1:{i:0;s:9:"ROLE_USER";} 有了这些,我很想知道如何传递到findBy(),以选择所有的ROLE\u ADMIN和ROLE\u SUPER\u ADMIN用户 换言之: $users = $em->getR

我需要能够在分页表中显示所有ROLE_ADMIN和ROLE_SUPER_ADMIN用户。我使用Doctrine的
findBy()
方法在表中正确显示了每个人,但我对如何按角色过滤有点困惑。角色保存为
DC2Type:array
,角色数据本身看起来有点像JSON:

a:1:{i:0;s:9:"ROLE_USER";}
有了这些,我很想知道如何传递到
findBy()
,以选择所有的ROLE\u ADMIN和ROLE\u SUPER\u ADMIN用户

换言之:

$users = $em->getRepository('Acme\SiteBundle\Entity\User')->findBy(array(/* what do I put here? */), array('id' => 'asc'), $perPage, $perPage * ($page - 1));


编辑:嗯。。。看起来,
findBy()
毕竟可能不是解决这个问题的方法。哦

该符号是PHP数组的序列化-这意味着
FOSUserBundle
不会规范化用户角色关系

但是您可以提供自己的用户类并重载角色getter/setter,或者如果您不必处理那么多用户,您可以通过获取所有用户并按角色过滤来重载用户存储库

肮脏的黑客行为是在角色字段上发出类似于的搜索,因为角色名称仍然可读,但从性能角度看,这会有点糟糕


您可以在中找到更多信息。

该符号是PHP数组的序列化-这意味着
FOSUserBundle
不会规范用户角色关系

但是您可以提供自己的用户类并重载角色getter/setter,或者如果您不必处理那么多用户,您可以通过获取所有用户并按角色过滤来重载用户存储库

肮脏的黑客行为是在角色字段上发出类似于的搜索,因为角色名称仍然可读,但从性能角度看,这会有点糟糕


您可以在中找到更多信息。

我认为将a中的每个角色结合起来并与团队合作会更好。特殊分配和拒绝角色组变得更容易,因为这是一种简单的关系。此外,查询特定的组也变得容易。

我认为将组中的每个角色与工作组结合起来会更好。特殊分配和拒绝角色组变得更容易,因为这是一种简单的关系。此外,查询特定的组也变得很容易。

是的,考虑到我继承的系统,使用类似的
是“最好”的方式。不幸的是,是的,考虑到我继承的系统,像使用
一样使用
是我最好的选择。不幸的是。