返回结果的 Doctrine ORM Pagination 计数

Doctrine ORM Pagination count of returned results

已使 Doctrine 分页完美运行,但其中一项要求是在 table 结果的底部显示 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();

但这会导致执行 2 个额外的查询,我希望有一种方法可以仅通过 3 个查询而不是 5 个查询来获得此计数!

有什么建议吗?

我找到的一个解决方案是扩展 doctrine 分页器,但我觉得有更好的解决方案吗?

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;
    }
}