1

我正在 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 概念的新手。:(

4

1 回答 1

0

您始终可以使用自己的分页器扩展分页器,并设置默认值。您甚至可以只传入请求对象或参数对象,然后让分页器在内部为您处理一些事情,以节省设置默认值等。

于 2013-02-08T09:20:32.403 回答