我正在使用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更好。甚至有人甚至编辑了一个四年的答案。我回滚了他的编辑。去搞清楚。
关于symfony - 在教义QueryBuilder中对行进行计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9214471/