Doctrine QueryBuilder计算行数

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

1
你只想返回结果数量吗?你的代码不是很清晰。为什么 getQuery() 不起作用? - jere
1
构建Doctrine2分页,可以查看此扩展:https://github.com/beberlei/DoctrineExtensions - Stefan
3
@Stefan,现在它是ORM的一部分。请参阅http://docs.doctrine-project.org/en/latest/tutorials/pagination.html - Eugene
11个回答

0

你也可以使用 count 函数来获取数据的数量。

$query = $this->dm->createQueryBuilder('AppBundle:Items')
                    ->field('isDeleted')->equals(false)
                    ->getQuery()->count();

2
不起作用,count 不是一个函数。 - Maxime Krier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接