Oop ZF2中每个控制器的分页器相同

Oop ZF2中每个控制器的分页器相同,oop,zend-framework2,Oop,Zend Framework2,我正在用ZF2编写我的第一个应用程序,我想创建分页系统 目前,我的控制器中有如下内容: $pagLimit = $this->params()->fromQuery('limit', 1000); $pagPage = $this->params()->fromQuery('page', 1); $orderDir = $this->params()->fromQuery('dir', 'ASC'); $orderBy = $this->params()

我正在用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);
我认为我的解决办法不太好

如果我想更改例如每页项目的默认限制,我必须修改我的所有控制器。另外,我必须记住为所有获取数据列表的映射器方法发送两个参数

我的第一个想法是将继承(“MyController”与setPaginationParams()和setPaginator($data)等方法结合使用

然后我必须记住在每个控制器中调用“我的控制器”方法

但也许有更好的方法为模块中的每个控制器实现相同的分页器?MVC事件?创建自定义类并使用DI

实现此功能的最佳方式是什么

你能给我一些提示吗


我不熟悉ZF2和OOP概念:(

您始终可以使用自己的分页器扩展分页器,并设置默认值。 您甚至可以只传入request对象或params对象,然后让Paginator内部处理一些事情,以保存设置默认值等操作