Zend Framework 2 - 分页

问题描述:

如何获取控制器操作中的页面详细信息? 我已经使用了专辑的分页。Zend Framework 2 - 分页

$iteratorAdapter = new \Zend\Paginator\Adapter\Iterator($this->getAlbumTable()->fetchAll()); 
$paginator   = new \Zend\Paginator\Paginator($iteratorAdapter); 
$paginator->setCurrentPageNumber($page); 
$paginator->setItemCountPerPage(2); 

return new ViewModel(array(
    'paginator' => $paginator 
)); 

我试图通过使用方法getPages()来获得。

$iteratorAdapter = new \Zend\Paginator\Adapter\Iterator($this->getAlbumTable()->fetchAll()); 
$paginator   = new \Zend\Paginator\Paginator($iteratorAdapter); 
$paginator->setCurrentPageNumber($page); 
$paginator->setItemCountPerPage(2); 
$pagingInfo = $paginator->getPages(); 
return new ViewModel(array(
    'paginator' => $paginator, 
    'pagingInfo' => $pagingInfo, 
)); 

在这种情况下,我有8条记录表。每页是2.所以,我有4页。 使用getPages()方法后,第3页&第4页没有记录。但分页存在。

怎么了?是否有任何其他方法可以在控制器中获得总记录数,当前页码和当前页记录数? 请给我建议。

+0

有没有人有建议? – 2plus

这是预期的bahaviour。

您已设置每页项目2,当前页面1.

这意味着你会回来的第一页上,即所有项目。项目1和2

如果你想在集合中的总页数使用此:

$paginator->count(); 

当前页码:

$paginator->getCurrentPageNumber() 

你问来获取当前页数控制器, 但为什么?你正在设置你的控制器的这个值,所以你必须已经拥有它(setCurrentPageNumber(..))..

如果你让我知道你在做什么,也许我可以告诉你一个更好的例子,如何做它。