我有两个模型:具有多对多关系的用户和组。所以我需要选择所有没有组的用户。我必须通过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;
}
那么,现在有人可以帮忙吗?
答案 0 :(得分:1)
如果你有一个与用户的关系,就像一个group属性是一个ArrayCollection那么你可以简单地让用户在count(u.groups)= 0或类似的东西?