概要
LaravelでSession機能を使ってみたので、忘れないようメモを残します。
セッションIDを取得する
Session::getId()
セッションの利用方法(Request)
HTTPリクエストインスタンスを経由してSessionを使う。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request,
App\Http\Controllers\Controller;
class TopController extends Controller
{
public function index(Request $request)
{
// セッションIDの再発行
$request->session()->regenerate();
// セッションの値を全て取得
$data = $request->session()->all();
// IDを取得
$id = $request->session()->get('id');
// 名前を取得 (クロージャー利用)
$name = $request->session()->get('username', function () {
return '名無し';
});
// ユーザー情報を取得
$users = $request->session()->get('users', array());
// ユーザー情報を保存する
$request->session()->put('users', null);
// ユーザー情報の情報が存在する(!= null)かチェック
$is_users = $request->session()->has('users');
// ユーザー情報がセット(nullでもOK)されているかチェック
$exists = $request->session()->exists('users');
// 削除 (指定の値を個別に)
$request->session()->forget('key');
// 削除 (全データ)
$request->session()->flush();
}
}
セッションの利用方法(ヘルパ)
グローバルSessionヘルパ関数でSessionを利用する。
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class TopController extends Controller
{
public function index()
{
// セッションIDの再発行
session()->regenerate();
// セッションの値を全て取得
$data = session()->all();
// セッションから一つのデータを取得する
$id = session('id');
// デフォルト値を指定する場合
$name = session('username', '名無し');
// セッションへ一つのデータを保存する
session(['users' => null]);
// ユーザー情報の情報が存在する(!= null)かチェック
$is_users = session()->has('users');
// ユーザー情報がセット(nullでもOK)されているかチェック
$exists = session()->exists('users');
// 削除 (指定の値を個別に)
session()->forget('key');
// セッションをクリア&セッションIDを再発行(Illuminate\Session\Store::invalidate)
session()->invalidate();
// セッションIDを再発行(Illuminate\Session\Store::migrate)
$this->session->migrate(true);
// 削除 (全データ)
session()->flush();
}
}
セッションの利用方法(ファサード)
ファサードを使ってSessionを利用する。
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller,
Session;
class TopController extends Controller
{
public function index()
{
// セッションIDの再発行
Session::regenerate();
// セッションの値を全て取得
$data = Session::all();
// IDを取得する
$id = Session::get('id');
// 名前を取得 (クロージャー利用)
$name = Session::get('username', function () {
return '名無し';
});
// ユーザー情報を取得
$users = Session::get('users', array());
// ユーザー情報を保存する
Session::put('users', null);
// ユーザー情報の情報が存在する(!= null)かチェック
$is_users = Session::has('users');
// ユーザー情報がセット(nullでもOK)されているかチェック
$exists = Session::exists('users');
// 削除 (指定の値を個別に)
Session::forget('key');
// 削除 (全データ)
Session::flush();
}
}