Cookieの操作
Cookieの取得・初期化
変数 = \Cookie::get('Cookie名', 初期値);
Cookie名
のCookieの値を変数に代入するCookie名
のCookieが存在しない時は、初期値をセットしてその値を変数に代入する
Cookieの保存
\Cookie::queue('Cookie名', 変数, 保存期限);
Cookie名
のCookieに変数の値を保存する- 保存期限は分単位で設定する
Cookieの削除
\Cookie::queue(\Cookie::forget('Cookie名'));
Cookie名
のCookieを削除する
実装例
ビュー
以下の内容を含むビューを所定の位置に準備。
$count
が1なら初訪問の旨を、そうでなければ訪問回数を表示- カウンターをクリアするためのボタンを表示
1 2 3 4 5 6 7 8 9 10 |
@if ($count === 1) <p>初めまして</p> @else <p>{{ $count }}回目のアクセスです</p> @endif <form method="post"> @csrf <input type="submit" value="カウンタークリア"> </form> |
設定・変更アクション
コントローラーに以下のアクションを準備し、ルーティング設定する。
count
という名前のCookieの値を取得して$count
に代入count
という名前のCookieがなければ値0で作成して、その値を$count
に代入
$count
の値をインクリメント$count
の値を90日期限でCookieに保存$count
の値を渡してビューをレンダリング
1 2 3 4 5 6 7 8 9 10 |
public function cookieTest() { $count = \Cookie::get('count', 0); $count++; \Cookie::queue('count', $count, 60 * 24 * 90); return view('samples.cookie', [ 'count' => $count, ]); } |
削除アクション
フォームのカウンタークリアボタンが押されたときのアクションを準備し、ルーティングを設定する。
- Cookieを削除する
- 削除した旨を画面に直接表示する
1 2 3 4 5 |
public function deleteCookie() { \Cookie::queue(\Cookie::forget('count')); return 'cookieを削除しました'; } |
実行結果
- 最初にアクセスすると、「初めまして」と表示
- リロードすると「2回目のアクセスです」と表示
- その後リロードするたびに回数が1つずつ増加
- カウンタークリアボタンを押すと、「cookieを削除しました」と表示
- ブラウザーの戻るボタンを押すと元の画面に戻り、「初めまして」と表示