我编写了一个简单的管理模块,它能够对记录进行分页并按某些列对其进行排序。当我对记录进行排序然后调用其他操作时,它应该使用与以前相同的排序参数将用户重定向回索引页面。但是在我使用 /admin/users/index/column/num_orders/order/ASC 这样的参数调用 indexAction() 然后调用 toggleActiveAction() 我被重定向到页面 /admin/users/index/column/num_orders/order /CSS。.../index/page/2 => .../index/page/css 的故事相同。
为什么是“CSS”?除了您在下面看到的以外,我的会话数据从未在其他上下文中使用过。
在我的引导程序中,我有以下内容:
protected function _initSession()
{
Zend_Session::start();
}
控制器初始化():
...
$this->_session = new Zend_Session_Namespace('Admin_Users');
...
我的控制器中有以下功能:
public function redirectToIndex()
{
$options = array();
if (isset($this->_session->curPage) && $this->_session->curPage != 1)
$options['page'] = $this->_session->curPage;
if (isset($this->_session->curColumn) && $this->_session->curColumn)
$options['column'] = $this->_session->curColumn;
if (isset($this->_session->curOrder) && $this->_session->curOrder)
$options['order'] = $this->_session->curOrder;
$this->_helper->redirector('index', 'users', 'admin', $options);
}
在索引操作中:
$curColumn = $this->_getParam('column', '');
$curOrder = strtoupper($this->_getParam('order', ''));
$page = $this->_getParam('page', 1);
...
$this->_session->curPage = $page;
$this->_session->curColumn = $curColumn;
$this->_session->curOrder = $curOrder;
然后在 toggleActiveAction() 我打电话
$this->redirectToIndex();