我使用查询构建器创建了一个查询,现在我想知道结果中有多少条记录但是由于某种原因它会抛出我NonUniqueResultException
这是代码
$VideoQueueRepo = $this->_EntityManager->getRepository("TestTestAppBundle:VideoQueue");
$VideoQueue = $VideoQueueRepo->createQueryBuilder('VQ')
->where("VQ.reviewStatus = :ReviewStatus")
->setParameter('ReviewStatus', VideoConstants::STATUS_NEW)
->getQuery();
$VideoQueueCount = $VideoQueue->getSingleScalarResult();
我无法做到这一点($ VideoQueue-> getResult());因为结果中有大约50 000条记录,并且每个请求都被取消了,我在symfony日志中得到了这个
emergency.EMERGENCY: Allowed memory size of 134217728 bytes exhausted (tried to allocate 87 bytes)
如何获得结果中的记录数?
答案 0 :(得分:2)
如果您的查询导致多行,则会引发NonUniqueResultException
。如果您有许多状态为新的视频队列,则情况就是这样。
使用新写状态计算您的项目
$VideoQueue = $VideoQueueRepo->createQueryBuilder('VQ')
->select('COUNT(VQ)')
->where("VQ.reviewStatus = :ReviewStatus")
->setParameter('ReviewStatus', VideoConstants::STATUS_NEW)
->getQuery();