我正在使用 Doctrine 的 QueryBuilder 构建查询,我想从查询中获取结果的总数。
$repository = $em->getRepository('FooBundle:Foo'); $qb = $repository->createQueryBuilder('n') ->where('n.bar = :bar') ->setParameter('bar', $bar); $query = $qb->getQuery(); //this doesn't work $totalrows = $query->getResult()->count();
我只想对此查询进行计数以获取总行数,但不返回实际结果。(在此计数查询之后,我将使用 maxResults 进一步修改查询以进行分页。)
就像是:
$qb = $entityManager->createQueryBuilder(); $qb->select('count(account.id)'); $qb->from('ZaysoCoreBundle:Account','account'); $count = $qb->getQuery()->getSingleScalarResult();
有些人觉得表达式比直接使用 DQL 更好。甚至有人编辑了一个四年前的答案。我回滚了他的编辑。去搞清楚。