Webアプリケーションではリクエスト間でユーザーを識別し、ユーザーごとにデータを保存する必要があり、そのためにLaravelなどのフレームワークではセッションと呼ばれる仕組みが提供されています。この記事では、Laravel がセッションを処理する方法を紹介します。
セッションにはデータ (キーと値) を保存できます。Laravel は、config/session.php で設定できるさまざまなバックエンド セッションを提供します。
ファイルセッションは、デフォルトで storage/framework/sessions/ ディレクトリ内のファイルにセッションを保存します。運用環境ではデータベース セッションや Redis セッションなどの使用を検討しますが、開発環境ではデフォルトのファイル セッションを使用するだけで十分です。
#php 中国語 Web サイトの学習トピック: php セッション (写真、テキスト、ビデオ、ケースを含む)
# Laravel でセッションを使用する方法
Laravel でセッションを操作するには、主に 2 つの方法があります。1 つは、オペレーションに渡される Request インスタンスによるものです。
Illuminate\Session\Store インスタンスを使用します。
// 从会话中获取指定的数据 //在没有存在键的情况下,将返回的默认值指定为第二参数 $value = $request->session()->get('key’); $value = $request->session()->get('key', 'default’); $value = $request->session()->get('key', function () { return 'default'; }); // 获取会话中的所有数据 $data = $request->session()->all(); // 检查指定的数据是否存在于会话中 if ($request->session()->exists('key')) { // 存在 } if ($request->session()->has('key')) { // null不存在 } // 将数据保存到会话 $request->session()->put('key', 'value'); $request->session()->put(['key1' => 'value1', 'key2' => ‘value2']); // 从会话取得指定的数据后,删除该数据 $value = $request->session()->pull('key', 'default’); // 从会话中删除指定的数据 $request->session()->forget('key'); // 从会话中删除所有数据 $request->session()->flush();
もう 1 つの方法は、グローバル ヘルパー関数 session() を使用することです。 Illuminate\Session\SessionManager インスタンスを使用します。
// 从会话中获取指定的数据 // 在没有存在键的情况下,将返回的默认值指定为第二参数 $value = session('key’); $value = session('key', 'default'); $value = session('key', function () { return 'default'; }); $value = session()->get(‘key'); $value = session()->get('key', 'default'); $value = session()->get('key', function () { return 'default'; }); // 取得会话中的全部数据 $data = session()->all(); // 检查指定的数据是否存在于会话中 if (session()->exists('key')) { // 存在 } if (session()->has('key')) { // null不存在 } // 保存数据到会话 session(['key1' => 'value1', 'key2' => ‘value2']); session()->put(['key1' => 'value1', 'key2' => 'value2']); // 从会话取得指定的数据后,删除该数据 $value = session()->pull('key', 'default’); // 从会话中删除指定的数据 session()->forget('key'); // 从会话中删除所有数据 session()->flush();
Laravel でセッションを使用する具体的な例を見てみましょう
非常に簡単な例routes/web.php Route::get('/put-data', function () { session()->put(['email' => 'user@example.com']); return session()->get('email'); }); Route::get(‘/list-data', function () { return session()->all(); });
user@example.com
{"email":"user@example.com","_previous":{"url":"http:\/\/localhost:8000\/put-data"},"_flash":{"old":[],"new":[]},"_token":"UYcsteOQAj58e9Aay5uNc3V4F0fSpi9VfEBlKhTZ"}
以上がLaravelのセッション(セッション)の扱い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。