2013-01-17 222 views
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

回答

2

這是預期的bahaviour。

您已設置每頁項目2,當前頁面1.

這意味着你會回來的第一頁上,即所有項目。項目1和2

如果你想在集合中的總頁數使用此:

$paginator->count(); 

當前頁碼:

$paginator->getCurrentPageNumber() 

你問來獲取當前頁數控制器, 但爲什麼?你正在設置你的控制器的這個值,所以你必須已經擁有它(setCurrentPageNumber(..))..

如果你讓我知道你在做什麼,也許我可以告訴你一個更好的例子,如何做它。