我正在处理遗留的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')) );
这可能吗?
答案 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>