Heim > PHP-Framework > Laravel > Detaillierte Erläuterung der Laravel-Methode zur Behandlung von Sitzungen (Sitzungen)

Detaillierte Erläuterung der Laravel-Methode zur Behandlung von Sitzungen (Sitzungen)

不言
Freigeben: 2020-07-13 16:41:28
Original
10923 Leute haben es durchsucht

In Webanwendungen ist es notwendig, Benutzer über Anfragen hinweg zu identifizieren und Daten für jeden Benutzer zu speichern. Dafür stellen Frameworks wie Laravel einen Mechanismus namens Sitzungen bereit. In diesem Artikel erfahren Sie, wie Laravel mit Sitzungen umgeht.

Detaillierte Erläuterung der Laravel-Methode zur Behandlung von Sitzungen (Sitzungen)

Sitzungen können Daten (Schlüssel und Werte) speichern, Laravel bietet verschiedene Backend-Sitzungen, die in config/session.php eingestellt werden können.

Dateisitzungen speichern Sitzungen standardmäßig in Dateien im Verzeichnis storage/framework/sessions/. In einer Produktionsumgebung werden wir die Verwendung von Datenbanksitzungen, Redis-Sitzungen usw. in Betracht ziehen, aber in einer Entwicklungsumgebung reicht es aus, die Standarddateisitzung zu verwenden.

PHP Chinesisch-Website-Lernthema: PHP-Sitzung (einschließlich Bilder, Videos, Fälle)

Wie So verwenden Sie Sitzungen in Laravel

Es gibt zwei Hauptmethoden, um Sitzungen mit Laravel durchzuführen.

Eine davon erfolgt über die Request-Instanz, die an den Vorgang übergeben wird.

Verwenden Sie die Illuminate Session Store-Instanz.

// 从会话中获取指定的数据
//在没有存在键的情况下,将返回的默认值指定为第二参数
$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();
Nach dem Login kopieren

Eine andere Möglichkeit ist die Verwendung der globalen Hilfsfunktion session().
Verwenden Sie die SessionManager-Instanz von Illuminate Session.

// 从会话中获取指定的数据
// 在没有存在键的情况下,将返回的默认值指定为第二参数
$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();
Nach dem Login kopieren

Schauen wir uns anEin konkretes Beispiel für die Verwendung einer Sitzung in Laravel

Ein sehr einfaches Beispiel

Wir definieren die folgende Route.

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();
});
Nach dem Login kopieren

Zunächst wird beim Zugriff auf /put-data im Browser der erste Pfad ausgeführt und Sie können bestätigen, dass die Daten in der Sitzung gespeichert wurden.

user@example.com
Nach dem Login kopieren

Als nächstes wird beim Zugriff auf /list-data im Browser der zweite Pfad ausgeführt und Sie können bestätigen, ob die zuvor gespeicherten Daten erhalten geblieben sind

{"email":"user@example.com","_previous":{"url":"http:\/\/localhost:8000\/put-data"},"_flash":{"old":[],"new":[]},"_token":"UYcsteOQAj58e9Aay5uNc3V4F0fSpi9VfEBlKhTZ"}
Nach dem Login kopieren

Natürlich gibt es noch andere Daten Dabei handelt es sich aber um automatisch gespeicherte Daten, Laravel selbst nutzt ebenfalls Sitzungen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Laravel-Methode zur Behandlung von Sitzungen (Sitzungen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage