cakePHP(v3.x)、Cookieを利用する。

絞り込み条件を設定して記事を絞り込める記事の一覧ページを作っていた時に、画面を遷移するたびに以前まで絞り込んでいた内容がリセットされてしまうので、これをなんとかするためににCookieを利用します。 Cookieと同様にSessionというものもよく見受けられますが、Sessionの場合はデータを保持するのにサーバー側のメモリを食ってしまうので、クライアントが多くなった時に破綻してしまいます。

今回はCakePHPに実装されているメソッドを利用してCookieを保存していきます。

参照:クッキー

コントローラーにて

//抜粋

$this->Cookie->read('param.status'); // statusの読み込み
if ($this->request->is('get')) {
    $param = $this->request->getQuery();
    if (isset($param['status'])) {
        $active_status = $param['status'];
        $this->Cookie->write('param.status', $param['status']); // statusの書き込み
    }
}

デフォルトの仕様だとcookieの有効期限は1ヶ月でデータは暗号化されます。$this->Cookie->configメソッドを使って適宜オプションを調整しましょう。