2013-02-01 48 views
1

我正在ZF2中編寫我的第一個應用程序,並且我想創建分頁系統。ZF2中每個控制器的相同分頁器

目前,我有我的控制器是這樣的:

$pagLimit = $this->params()->fromQuery('limit', 1000); 
$pagPage = $this->params()->fromQuery('page', 1); 
$orderDir = $this->params()->fromQuery('dir', 'ASC'); 
$orderBy = $this->params()->fromQuery('column', 'id'); 

$result = $this->getMapper()->getList($orderDir, $orderBy); 


$paginator = new Paginator(new ArrayAdapter($result)); 
$paginator->setItemCountPerPage($pagLimit); 
$paginator->setCurrentPageNumber($pagPage); 

我認爲我的解決辦法是不太好..

如果我想例如,改變每頁項目的默認限制,我必須修改我的所有控制器。另外,我必須記得爲所有正在獲取數據列表的mapper方法發送兩個參數。

我的第一個想法是使用繼承(「MyController」),如setPaginationParams()和setPaginator($ data))。

然後,我將不得不記得在每個控制器中調用「我的控制器」方法。

但也許有更好的方式來實現模塊中的每個控制器相同的paginator? MVC事件?創建自定義類並使用DI?

實現此功能的最佳方法是什麼?

你能給我一些提示嗎?

我是ZF2和OOP概念的新手。 :(

回答

0

你可以隨時擴展你自己的paginator,並設置默認值 你甚至可以傳入請求對象或params對象,然後讓Paginator在內部處理一些事情,以便保存設置默認值等。