ホームページ > PHPフレームワーク > Laravel > Laravelのセッション(セッション)の扱い方を詳しく解説

Laravelのセッション(セッション)の扱い方を詳しく解説

不言
リリース: 2020-07-13 16:41:28
オリジナル
10932 人が閲覧しました

Webアプリケーションではリクエスト間でユーザーを識別し、ユーザーごとにデータを保存する必要があり、そのためにLaravelなどのフレームワークではセッションと呼ばれる仕組みが提供されています。この記事では、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();
});
ログイン後にコピー

まず、ブラウザで/put-dataにアクセスすると、最初のパスが実行され、セッションにデータが保存されていることが確認できます。

user@example.com
ログイン後にコピー

次にブラウザで /list-data にアクセスすると 2 番目のパスが実行され、前回保存したデータが保持されているか確認できます

{"email":"user@example.com","_previous":{"url":"http:\/\/localhost:8000\/put-data"},"_flash":{"old":[],"new":[]},"_token":"UYcsteOQAj58e9Aay5uNc3V4F0fSpi9VfEBlKhTZ"}
ログイン後にコピー

もちろん他にもありますただし、これらは自動的に保存されるデータであり、Laravel自体もセッションを使用します。


以上がLaravelのセッション(セッション)の扱い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート