レコードをページ付けして列で並べ替える機能を備えた単純な管理モジュールをコーディングしました。また、並べ替えてからレコードに対して他のアクションを呼び出すと、以前と同じ並べ替えパラメーターを使用して、ユーザーをインデックスページにリダイレクトする必要があります。しかし、この/ 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();
}
コントローラーinit():
...
$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();