如何在控制器的操作中获取页面详细信息? 我使用了专辑的分页。
$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条记录。 Perpage是2.所以,我有4页。 使用getPages()方法后,第3&第4页没有记录。但是分页存在。
怎么了?是否还有其他方法可以获得记录总数,当前页码和当前页面记录在控制器中的数量? 请建议我。
答案 0 :(得分:2)
这是预期的行为。
您已将每页的项目设置为2,将当前页面设置为1。
这意味着您将获得第一页上的所有项目,即。第1项和第2项。
如果您想要集合中的总页数使用:
$paginator->count();
当前页码:
$paginator->getCurrentPageNumber()
您要求获取控制器中的当前页数,但为什么?您正在控制器中设置此值,因此您必须已经拥有它(setCurrentPageNumber(..))..
如果你让我知道你想要做什么,也许我可以向你展示一个更好的例子。