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 页没有记录。但是分页是存在的。

怎么了?有没有其他方法可以获取控制器中的记录总数、当前页码和当前页记录数?请给我建议。

4

1 回答 1

2

这是预期的行为。

您已将每页的项目设置为 2,将当前页面设置为 1。

这意味着您将取回第一页上的所有项目,即。第 1 项和第 2 项。

如果您想要集合中的总页数,请使用以下命令:

$paginator->count();

当前页码:

$paginator->getCurrentPageNumber()

您要求在控制器中获取当前页数,但为什么呢?您正在控制器中设置此值,因此您必须已经拥有它 (setCurrentPageNumber(..))..

如果您让我知道您要做什么,也许我可以向您展示如何做的更好示例。

于 2013-01-22T12:09:51.127 回答