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>
我正在处理一个遗留的 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>