$messageQuery
->select('m, COUNT(pm) AS newResponses')
//->addSelect($messageQuery->expr()->countDistinct('pm.id'))
->from('entities:PrivateMessage', 'm')
->where('m.employeeId = :employeeId AND m.responseTo = 0')
->innerJoin('entity:PrivateMessage', 'pm', 'WITH', 'pm.responseTo = m.id AND pm.employeeRead = 0')
->setParameter('employeeId', $employeeId)
->setFirstResult($offset)
->setMaxResults($max)
->addGroupBy('m.id')
->orderBy('m.id', 'DESC');
假设有两条employeeId = 1 和responseTo = 0 的消息。其中一条消息也有两个响应(因此还有另外两条responseTo = messageId 的记录)。另一个没有。我希望从这个查询中得到的结果是两个数组,其中实体对象作为索引 0,计数作为索引 numResponses(第一行的值为 2,第二行的值为 0)。我得到的是 $messageQuery->getQuery()->getResult(); 上的一个空数组;
有没有人知道为什么会发生这种情况?我在这里有什么明显的遗漏吗?