【Laravel】セッションを使ってみる

~簡単な自己紹介~

  • 嫁と猫3匹と暮らすフルリモートの三十路SE
  • ブリッジSE的なポジションを務めることが多く、チーム運営、顧客折衝、ベンダーコントロールが得意
  • 投資・節約・副業で資産形成中
  • 現在の金融資産は約1,650万円、めざせアッパーマス層(資産3,000万円)

セッションの使用を宣言する

冒頭に下記のuse文を記載します。

use Session;

セッションにデータをセットする

Session::put("セッション変数名", セットする値);

セッションからデータを取得する

Session::get("セッション変数名");

セッションのデータを破棄する

Session::forget("xxxxx");

使用例

ソース

src\app\Http\Controllers\SessionController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Session;

class SessionController extends Controller
{
    // セッションをプラス1する
    public function increment()
    {
        // セッションを取得、未設定の場合はnull
        $counter = Session::get("counter");

        // すでにセットされている場合、1をプラス
        if (!is_null($counter)) {
            $counter++;
        // nullの場合、1をセット
        } else {
            $counter = 1;
        }

        // 画面に表示
        var_dump($counter);

        // 更新後のセッションをセット
        Session::put("counter", $counter);
    }

    // セッションを破棄する
    public function forget()
    {
        // セッションを削除
        Session::forget("counter");

        // セッションは削除されているのでnullになる
        $counter = Session::get("counter");

        // 画面に表示(nullが表示される)
        var_dump($counter);
    }
}

src\routes\web.php

Route::get('session-increment', 'SessionController@increment');
Route::get('session-forget', 'SessionController@forget');

ブラウザで開いてみる

セッションインクリメントページに1回目のアクセス

今はセッションcounterがnullなので、1が設定されます。

セッションインクリメントページに2回目~4回目のアクセス

アクセスするたびにセッションcounterがプラス1されていきます。

セッション破棄ページにアクセス

セッションcounterを破棄するので、セッションcounterを取得してもnullが返ってきます。

セッションインクリメントページに1回目のアクセス

今はセッションcounterがnullなので、1が設定されます。

以上になります。

お疲れさまでした。

Follow me!