Sie sind eine einfache Möglichkeit, Daten für den aktuellen Benutzer zu speichern. Dieses Tutorial vermittelt Ihnen die Grundlagen der Arbeit mit Sitzungen in Laravel.
In Laravel ist eine Sitzung eine Möglichkeit, Informationen zu speichern, um Anfragen eines Benutzers korrekt zu bearbeiten. Wenn ein Benutzer eine Laravel-Anwendung startet, wird automatisch eine Sitzung für diesen Benutzer gestartet. Sitzungsdaten werden auf dem Server gespeichert und ein kleines Cookie mit einer eindeutigen Kennung wird an den Browser des Benutzers gesendet, um die Sitzung zu identifizieren.
Sie können Session verwenden, um Daten zu speichern, die Sie über mehrere Seiten oder Anfragen hinweg verwenden möchten. Beispielsweise können Sie die Sitzung zur Benutzerauthentifizierung verwenden oder andere Informationen speichern, die Sie während der Sitzung in Ihrer Anwendung verwenden möchten.
Um Sitzungen in Laravel zu verwenden, müssen Sie diese zunächst in der Datei aktivieren config/session.php
der Konfiguration. In dieser Datei können sitzungsbezogene Konfigurationsparameter festgelegt werden. Zum Beispiel die Dauer der Sitzung, der zum Speichern der Sitzungsdaten zu verwendende Treiber und der Speicherort für die Sitzungsdaten.
Unten sehen Sie ein Beispiel für eine Datei sessions.php
bei einer Sitzungsdauer von 120 Sekunden, Verwendung von Dateien, die im Verzeichnis gespeichert sind 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',
];
Sie können die Sitzung auch mithilfe von Umgebungsvariablen in der Datei konfigurieren .env
. Um beispielsweise den Datenbanksitzungstreiber zu verwenden und Sitzungsdaten in einer Sitzungstabelle zu speichern, können Sie mit DB vom Typ MySQL die folgenden Umgebungsvariablen festlegen:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Es gibt drei Möglichkeiten, mit Sitzungsdaten in Laravel zu arbeiten:
helper
des global session
;Request instance
. In all diesen Fällen sind die Daten, die Sie in der Sitzung speichern, in nachfolgenden Anfragen desselben Benutzers verfügbar, bis die Sitzung abläuft oder manuell gelöscht wird.
Verwenden Sie in Laravel die Funktion Global Session Helper
Dies ist eine bequeme Möglichkeit, auf die vom Framework bereitgestellten Sitzungsdienste zuzugreifen. Es ermöglicht Ihnen, Daten aus der Sitzung in Ihrer Anwendung zu speichern und abzurufen. Hier ist ein Beispiel für die Verwendung von 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();
Sie können auch einen Vorwert übergebendefinite als zweites Argument der Funktion session
, die zurückgegeben wird, wenn der angegebene Schlüssel in der Sitzung nicht gefunden wird:
$value = session('key', 'default');
Session Request
In Laravel bezieht sich eine Sitzungsanforderungsinstanz auf ein Objekt, das eine HTTP-Anforderung darstellt und Informationen über die Anforderung enthält, wie z. B. die Anforderungsmethode (GET, POST, PUT usw.), die Anforderungs-URL, die Header der Anforderung und den Anforderungstext . Es enthält auch verschiedene Methoden, die verwendet werden können, um diese Informationen abzurufen und zu manipulieren.
Normalerweise greifen Sie auf die Instanz von zu Session Request
durch die Variable $request
in einer Laravel-Anwendung. Auf eine Sitzung kann beispielsweise über eine Anforderungsinstanz unter Verwendung der Hilfsfunktion zugegriffen werden 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');
}
}
In diesem Beispiel die Variable $request
es ist eine Instanz der Klasse Illuminate\Http\Request
, die die aktuelle HTTP-Anforderung darstellt. Die Funktion session
Anforderungsinstanz gibt eine Instanz der Klasse zurück Illuminate\Session\Store
, die verschiedene Funktionen zum Arbeiten mit der Session bereitstellt.
Ercole Palmeri
Google DeepMind stellt eine verbesserte Version seines Modells der künstlichen Intelligenz vor. Das neue, verbesserte Modell bietet nicht nur…
Laravel, bekannt für seine elegante Syntax und leistungsstarken Funktionen, bietet auch eine solide Grundlage für modulare Architektur. Dort…
Cisco und Splunk unterstützen Kunden dabei, ihren Weg zum Security Operations Center (SOC) der Zukunft zu beschleunigen, mit…
Ransomware dominiert seit zwei Jahren die Nachrichten. Den meisten Menschen ist durchaus bewusst, dass Angriffe…
In der Poliklinik von Catania wurde eine Augenkorrektur mit dem kommerziellen Viewer Apple Vision Pro durchgeführt.
Die Entwicklung der Feinmotorik durch Malen bereitet Kinder auf komplexere Fähigkeiten wie das Schreiben vor. Färben…
Der Marinesektor ist eine echte globale Wirtschaftsmacht, die auf einen 150-Milliarden-Milliarden-Markt zusteuert...
Letzten Montag gab die Financial Times einen Deal mit OpenAI bekannt. FT lizenziert seinen erstklassigen Journalismus…