小编典典

在 Doctrine QueryBuilder 中计算行数

all

我正在使用 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 进一步修改查询以进行分页。)


阅读 66

收藏
2022-06-13

共1个答案

小编典典

就像是:

$qb = $entityManager->createQueryBuilder();
$qb->select('count(account.id)');
$qb->from('ZaysoCoreBundle:Account','account');

$count = $qb->getQuery()->getSingleScalarResult();

有些人觉得表达式比直接使用 DQL 更好。甚至有人编辑了一个四年前的答案。我回滚了他的编辑。去搞清楚。

2022-06-13