返回结果的 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;
}
}
已使 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;
}
}