Laravel7 Session管理をDBに変更する

Laravel7 Session管理をDBに変更する

Laravel7でsessionの管理方法をfileからDBに変更する手順記述してます。sessionを扱うサンプルコードを実行してDBに書き込まれていることを確認します。

環境

  • OS windows10 pro 64bit
  • Composer 1.10.5
  • PHP 7.4.5
  • MariaDB 10.4.12
  • Laravel Framework 7.6.2

※windows10に Laravel のインストールはこちら
※windows10に Composer のインストールはこちら
※windows10に PHP のインストールはこちら
※windows10に MariaDB のインストールはこちら

.envファイル変更

sessionの管理をfileからDBに変更します。

Session管理用テーブル作成

下記のコマンドを実行してテーブルを作成します。

キャッシュを削除しておきます。

以上でsessionがDBで管理されるようになります。

Session管理サンプルコード

下記がsession管理のサンプルコードとなります。

bootstrap導入

ここでは、レイアウトにbootstrapを利用しているため導入手順を記述

詳しい手順はこちらに記述してますが、下記のコマンドで利用可能になります。

コントローラー作成

Sessionを扱うためのコントローラーを作成していきます。
「HumanController」という名前でコントローラーを作成します。

app/Http/Controllers/SessionController.phpが生成されているので、
sessionを保存するためのstoreメソッドと、
sessionを削除するためのdeleteメソッドを
を作成します。

ここでは、view(‘session.delete’)としているので削除用のビューは
「session」フォルダ配下に「 delete.blade.php 」として作成します。
laravelでは、区切り文字「.」でフォルダとファイル名が指定されます。

ビュー作成

次にレイアウト部であるviewを作成します。

resources\views内で「session」というフォルダを作成して「index.blade.php」を下記の内容で、新たに作成します。

@csrf は Bladeテンプレート機能の1つで、CSRF対策となります。

次に同一階層に 「 delete.blade.php 」 を下記の内容で作成します。

ルーティング追加

アクセスするURLを設定するため、ルーティングを記述します。
ここでは/sessionに設定します。

確認

ブラウザから http://localhost:8000/session にアクセスするとsessionの挙動が確認できます。

テーブル確認するとsession情報が書き込まれていることが確認できます。