我有一个包含用户警报的表,我想获取按创建警报的用户分组的所有警报的列表。
$qb = $this->em->getRepository('AppBundle:Alarm')->createQueryBuilder('a')->groupBy('a.userId');
$result = $qb->getQuery()->getResult();
问题是我只收到每个用户一个警报,而不是他的所有现有警报。
如果我删除组,我会收到所有警报。
有什么方法可以让所有警报按用户分组吗?我期待得到数组和数组。
最佳答案
这正是 groupBy
子句应有的工作方式。它为每个 user
选择第一个 Alarm
项。
如果您想要单个用户的所有Alarm
,您必须使用group_concat
,而Doctrine
又没有。您必须注册自定义 DQL
函数。 Check here
关于php - Doctrine "group by"不返回所有现有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38819586/