Zend paginator - 是否可以设置自定义参数?

Zend paginator - is it possible to set custom params?

我正在处理一个遗留的 Zend 项目。有一个 table 使用分页器填充了一些值:

paginator = Zend_Paginator::factory( $this->_getRecords($filter1, $filter2)   );

$paginator->setCurrentPageNumber($this->_getParam('page'));
$this->view->paginator = $paginator;

问题来了。此分页器不知道过滤器( filter1 和 filter2 )。

点击某些页面会导致 filter1 和 filter2 值为空。我想要做的是将这些过滤器设置为分页器中的参数,比如:

/admin/users/index/page/7/filter1/value1/filter2/value2

然后可以说:

paginator = Zend_Paginator::factory( $this->_getRecords($this->_getParam('filter1'), $this->_getParam('filter2'))   );

这可能吗?

Paginator 不生成 urls。网址由路由器生成。

将过滤器传输到当前页面的模板

$this->view->paginator = $paginator;
$this->view->filters = array('filter1'=>$filter1, 'filter2'=>$filter2);

在当前页面的模板中将过滤器传输到分页器模板

<?php echo $this->paginationControl($this->paginator, 'Sliding', 'pagination.tpl', array('filters'=>$this->filters)); ?>

在分页器模板中 'pagination.tpl' 将它们添加到 url 生成函数中

<a href="<?php echo $this->url($this->filters + array('page'=>($this->current-1))); ?>">prev</a>

<a href="<?php echo $this->url($this->filters + array('page'=>($this->current+1))); ?>">next</a>