Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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
で表示されました

toontoon
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away