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

时间:2013-02-01 15:16:59

标签: 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()->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概念的新手。 :(

1 个答案:

答案 0 :(得分:0)

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