search
LoginSignup
0
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Laravelでセッションを使う

目次

Laravelの記事一覧は下記
PHPフレームワークLaravelの使い方

Laravelバージョン

動作確認はLaravel Framework 7.19.1で行っています

前提条件

eclipseでLaravel開発環境を構築する。デバッグでブレークポイントをつけて止める。(WindowsもVagrantもdockerも)
本記事は上記が完了している前提で書かれています
プロジェクトの作成もapacheの設定も上記で行っています

Controllerにメソッド追加

(1) /sample/app/Http/Controllers/SampleController.phpにsession1メソッド、session2メソッドを追記

    public function session1(Request $request)
    {
        $request->getSession()->put("key1", "value1");
        $request->getSession()->put("key2", "value2");
        return view('sample.session1');
    }

    public function session2(Request $request)
    {
        $data = [
            'key1' => $request->getSession()->get("key1")
        ];
        return view('sample.session2', $data);
    }

(2) /sample/routes/web.phpに下記を追記
Route::get('sample/session1', 'SampleController@session1');
Route::get('sample/session2', 'SampleController@session2');

viewの作成

(1) /sample/resources/views/sample/session1.blade.phpファイル作成

session1.blade.php
<html>
    <head>
        <title>sample</title>
    </head>
    <body>
        <form action="{{ url('sample/session2') }}" method="get">
            <input type="submit" >
        </form>

    </body>
</html>

(2) /sample/resources/views/sample/session2.blade.phpファイル作成

session2.blade.php
<html>
    <head>
        <title>sample</title>
    </head>
    <body>
        <div>{{$key1}}</div>
        <div>{{ session('key2') }}</div>
    </body>
</html>

$request->getSession()->get
session
どちらでもセッションに格納した値を取れます
ただし、session関数は配列を引数として与えられた場合、取得ではなく、セッションへの値の保存になってしまうので気を付けましょう

動作確認

http://localhost/laravelSample/sample/session1

送信ボタンクリック

実行結果

value1
value2

http://localhost/laravelSample/sample/session1
でsessionにputした値が
http://localhost/laravelSample/sample/session2
で表示されました

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0
Help us understand the problem. What are the problem?