-1

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

好的,还有更多信息。我在 symfony 2 中使用奏鸣曲管理包工作。在我的列表视图中,我想显示与组没有关系的用户。例如:当管理员在管理面板中创建用户时,他为该用户选择了组。但是当用户从前端注册时,该用户没有任何组。所以,我想看到所有这些没有组的用户。在管理类的奏鸣曲管理包中,我可以继承 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;
}

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

4

1 回答 1

1

如果您与用户有关系,例如组属性是 ArrayCollection,那么您可以简单地让用户 where count(u.groups) = 0 或类似的东西?

于 2012-06-13T10:46:02.533 回答