# laravel session を制する

laravel を使うことが増え session 機能の使い方がたくさん
もちろん$_SESSIONも使えますが、せっかくなので、laravel の session 機能紹介

# session 値保存

Request Session グローバルヘルパ使う 3 つのパターンがあります。

// $request 使う場合
$request->session()->put('user', $request->user);

// Session 使う場合
Session::put('user', 'hogehoge');

// グローバルヘルパ使う場合
session(['user' => 'hogehoge' ]);

# session 値読み込み

// $request 使う場合
$request->session()->get('user');
$request->session()->all();     // 全データ取得

// Session 使う場合
Session::get('user', 'guest'); // 取得できない場合 guest 返す
Session::all();                // 全データ取得

// グローバルヘルパ使う場合
session('user');

# session 値存在確認

// $request 使う場合
$request->session()->has('isLogin');
$request->session()->exists('isLogin')

// Session 使う場合
Session::has('isLogin');

// session() 使う場合
session()->has('isLogin');

session()->has() と session()->exists() の違い

exists()は値が set されれば null であても true 返します

# session 値削除

// $request 使う場合
$request->session()->forget('user');
$request->session()->forget(['key1', 'key2']);  // 複数削除
$request->session()->flush();                   // 全データ削除

// Session 使う場合
Session::forget('user');

// session() 使う場合
session()->forget('user');

# session ID 取得と再生成

セッション攻撃防ぐために使う再生成と取得

// session ID取得
$request->session()->getId();

// session ID再生成
$request->session()->regenerate();
2021-02-18
  • laravel