我正在使用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/

10-08 20:37