通过DQL获取没有组的用户

时间:2012-06-13 07:54:33

标签: php sql symfony doctrine-orm

我有两个模型:具有多对多关系的用户和组。所以我需要选择所有没有组的用户。我必须通过DQL认识到。

好的,更多信息。我在symfony 2中使用sonata admin bundle工作。在我的列表视图中,我想显示与组无关的用户。例如:当管理员面板中的管理员创建用户时,他为该用户选择组。但是当用户从前端注册时,该用户没有任何组。所以,我想看看没有组的所有这些用户。在Admin类中的sonata admin包中,我可以继承createQuery方法,在那里我可以编写自己的DQL查询。举个例子:

public function createQuery($context = 'list')
{
    $query = parent::createQuery($context);
    $query->andWhere('o.admin = TRUE');
    $query->orderBy('o.loginDate', 'DESC');

    return $query;
}

所以,在我的情况下,我想选择没有组的用户,如下所示:

public function createQuery($context = 'list')
{
    $query = parent::createQuery($context);
    $query->addSelect('g');
    $query->leftJoin('o.groupList', 'g');

    // here I need some DQL which chose users without groups

    return $query;
}

那么,现在有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

如果你有一个与用户的关系,就像一个group属性是一个ArrayCollection那么你可以简单地让用户在count(u.groups)= 0或类似的东西?