[CakePHP1.2] 検索条件をセッションに保存するには

 検索条件をセッションに格納し、「検索条件をクリア」ボタンがクリックされたらセッションから削除するサンプルです。

  • 「検索条件をクリア」ボタンの名称:clear
  • 検索条件を保存するセッションの名称:Recipe.conditions

// コントローラ内

if (empty($this->data)) {
    // どのボタンもクリックされていない場合、検索条件をセッションから取得
    if ($this->Session->check('Recipe.conditions')) {
        $this->data = $this->Session->read('Recipe.conditions');
    }
} else {
    if (empty($this->params['form']['clear'])) {
        // 検索条件をセッションに保存
        $this->Session->write('Recipe.conditions', $this->data);
    } else {
        // 「検索条件をクリア」ボタンがクリックされた場合、検索条件をセッションから削除
        $this->Session->delete('Recipe.conditions');
        $this->data = array();
    }
}

// $this->dataを基に検索を実行

 余談ですが、セッションの削除処理を以下のように実装してしまうと、ログインセッションや他画面の検索条件など全セッションが破棄されますのでご注意を。システムテストをやっていてハマりましたw

$this->Session->destroy('Recipe.conditions');

コメントを残す

XHTML: 以下のタグを使用できます。: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>