Sonata Admin Bundle列出组中的用户

时间:2019-07-01 12:24:12

标签: symfony sonata-admin symfony-sonata sonata-user-bundle

我有Sonata管理员捆绑包和Sonata用户捆绑包(带有用户和组的FOSUserBundle)。

在UserAdmin.php中,我需要修改列表查询以仅显示特定组的用户。

我尝试过

public function createQuery($context = 'list')
    {
        $query = parent::createQuery($context);
        $query->andWhere(
            $query->expr()->eq($query->getRootAliases()[0] . '.groups', ':my_param')
        );
        $query->setParameter('my_param', '9'); //9 is the id of a group
        return $query;
    }

但是我有

[Semantical Error] line 0, col 72 near 'groups = :my': Error: Invalid PathExpression. StateFieldPathExpression or SingleValuedAssociationField expected.

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,正确的查询是:

public function createQuery($context = 'list')
    {
        $query = parent::createQuery($context);
        $query->andWhere(
            $query->expr()->isMemberOf(':groupId', $query->getRootAliases()[0] . '.groups')
        );
        $query->setParameter('groupId', '9'); //9 is the id of a group


        return $query;
    }