これらは、現在のユーザーのデータを永続化する簡単な方法です。 このチュートリアルでは、Laravel でセッションを操作する基本を説明します。
Laravel では、セッションは情報を保存し、ユーザーからのリクエストを正しく処理する方法です。 ユーザーが Laravel アプリケーションを起動すると、そのユーザーのセッションが自動的に開始されます。 セッション データはサーバーに保存され、一意の識別子を持つ小さな Cookie がユーザーのブラウザーに送信され、セッションが識別されます。
セッションを使用して、複数のページまたはリクエストで使用するデータを保存できます。 たとえば、セッションをユーザー認証に使用したり、セッション中に使用する他の情報をアプリケーションに保存したりできます。
Laravel でセッションを使用するには、まずファイルでセッションを有効にする必要があります config/session.php
構成の。 このファイルでは、セッションに関連する構成パラメーターを設定できます。 たとえば、セッションの期間、セッション データの保存に使用するドライバー、セッション データの保存場所などです。
以下はファイルの例です sessions.php
セッション継続時間 120 秒、ディレクトリに格納されたファイルの使用 framework/sessions
:
<?php
use Illuminate\Support\Str;
return [
'driver' => env('SESSION_DRIVER', 'file'),
'lifetime' => env('SESSION_LIFETIME', 120),
'expire_on_close' => false,
'encrypt' => false,
'files' => storage_path('framework/sessions'),
'connection' => env('SESSION_CONNECTION', null),
'table' => 'sessions',
'store' => env('SESSION_STORE', null),
'lottery' => [2, 100],
'cookie' => env(
'SESSION_COOKIE',
Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
),
'path' => '/',
'domain' => env('SESSION_DOMAIN', null),
'secure' => env('SESSION_SECURE_COOKIE'),
'http_only' => true,
'same_site' => 'lax',
];
ファイル内の環境変数を使用してセッションを構成することもできます .env
. たとえば、データベース セッション ドライバーを使用してセッション データをセッション テーブルに格納するには、MySQL タイプの DB を使用して、次の環境変数を設定できます。
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Laravel でセッション データを操作するには、次の XNUMX つの方法があります。
helper
の global session
;Request instance
. これらのすべての場合において、セッションに保存したデータは、セッションが期限切れになるか手動で破棄されるまで、同じユーザーによる後続のリクエストで使用できます。
Laravelでは、関数を使用して Global Session Helper
これは、フレームワークによって提供されるセッション サービスにアクセスする便利な方法です。 アプリケーションのセッションからデータを保存および取得できます。 使用方法の例を次に示します。 session helper
:
// Store data in the session
session(['key' => 'value']);
// Retrieve data from the session
$value = session('key');
// Remove data from the session
session()->forget('key');
// Clearing the Entire Session
session()->flush();
pre 値を渡すこともできますdefi関数の XNUMX 番目の引数として nite を指定する session
指定されたキーがセッションで見つからない場合に返されます。
$value = session('key', 'default');
Session Request
Laravel では、セッション リクエスト インスタンスは、HTTP リクエストを表し、リクエスト メソッド (GET、POST、PUT など)、リクエスト URL、リクエストのヘッダー、リクエスト ボディなどのリクエストに関する情報を含むオブジェクトを指します。 . また、この情報を取得および操作するために使用できるさまざまなメソッドも含まれています。
通常、のインスタンスにアクセスします Session Request
変数を通して $request
Laravel アプリケーションで。 たとえば、ヘルパー関数を使用してリクエスト インスタンスを介してセッションにアクセスできます。 session()
.
use Illuminate\Http\Request;
class ExampleController extends Controller
{
public function example(Request $request)
{
// Store data in the session using the put function
$request->session()->put('key', 'value');
// Retrieve data from the session using the get function
$value = $request->session()->get('key');
// Check if a value exists in the session using the has function:
if ($request->session()->has('key')) {
// The key exists in the session.
}
// To determine if a value exists in the session, even if its value is null:
if ($request->session()->exists('users')) {
// The value exists in the session.
}
// Remove data from the session using the forget function
$request->session()->forget('key');
}
}
この例では、変数 $request
クラスのインスタンスです Illuminate\Http\Request
、現在の HTTP 要求を表します。 関数 session
リクエストインスタンスはクラスのインスタンスを返します Illuminate\Session\Store
、セッションを操作するためのさまざまな機能を提供します。
Ercole Palmeri
先週の月曜日、フィナンシャル・タイムズ紙はOpenAIとの契約を発表した。 FT は世界クラスのジャーナリズムにライセンスを供与しています…