计算doctrine 2 zf2中查询返回的总行数

时间:2016-02-03 07:58:14

标签: symfony zend-framework doctrine-orm zend-framework2 doctrine

$countQuery = $qb->select('q.id,d.name,d.numbers')
            ->from('Application\Entity\quests', 'q');
            ->leftJoin('q.dots', 'd');
$query1 = $countQuery->getQuery()->getResult();

现在我如何获得返回的结果总数 **i don't want to write 2 queries** bcz会增加执行时间 我试过了

 $countQuery = $qb->select('count(q.id) as total_results,d.name,d.numbers')
            ->from('Application\Entity\quests', 'q');
            ->leftJoin('q.dots', 'd');
$query1 = $countQuery->getQuery()->getResult();

但它不起作用

1 个答案:

答案 0 :(得分:1)

getResult()方法返回结果数组。要计算getResult()方法返回的总结果,只需使用PHP函数count计算它。

$countQuery = $qb
    ->select('q.id,d.name,d.numbers)
    ->from('Application\Entity\quests', 'q')
    ->leftJoin('q.dots', 'd');

$query1 = $countQuery->getQuery()->getResult();

$totalResults = count($query1);

如果要对查询进行分页,那么在计算总行数时,您需要执行两个查询。一个用于分页结果,另一个用于计算数据库中的所有行。