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

时间:2016-02-08 14:08:35

标签: php zend-framework pagination

我正在处理遗留的Zend项目。有一个表使用Paginator填充了一些值:

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

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

现在问题就出现了。此分页器不知道过滤器(filter1和filter2)。

单击某个页面会产生空的filter1和filter2值。我想要做的是将这些过滤器设置为paginator中的params,如:

  

/管理/用户/索引/页/ 7 /过滤器1 / VALUE1 /过滤器2 / VALUE2

然后可以说:

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

这可能吗?

1 个答案:

答案 0 :(得分:3)

Paginator不会生成网址。网址生成网址。

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

$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)); ?>

在paginator模板&#39; pagination.tpl&#39;将它们添加到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>