Doctrine ORM分页返回结果的计数

时间:2015-07-31 11:47:31

标签: doctrine-orm pagination doctrine

让Doctrine分页工作完美,但其中一个要求位于结果表的底部,以显示Displaying X of X results

获得总结果不是问题,因为您可以这样做:

$paginator = new Paginator($query);
echo $paginator->count(); // total results for the query

我可以使用以下方式计算当前显示的结果:

$paginator = new Paginator($query);
echo $paginator->getIterator()->count();

但是这会导致另外两个查询被执行,我想要一种只用3个查询而不是5个查询的方法!

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我发现的一个解决方案是扩展学说分页符,如果有效,但我觉得这是一个更好的解决方案?

use Doctrine\ORM\Tools\Pagination\Paginator as DoctrinePaginator;

class Paginator extends DoctrinePaginator
{
    protected $iterator;

    public function getIterator()
    {
        if (is_null($this->iterator)) {
            $this->iterator = parent::getIterator();
        }

        return $this->iterator;
    }
}