Laravel - Sitzung
Sitzungen werden verwendet, um Informationen über den Benutzer über die Anforderungen hinweg zu speichern. Laravel bietet verschiedene Treiber wiefile, cookie, apc, array, Memcached, Redis, und databaseSitzungsdaten zu behandeln. Standardmäßig wird der Dateitreiber verwendet, da er leichtgewichtig ist. Die Sitzung kann in der Datei konfiguriert werden, die unter gespeichert istconfig/session.php.
Zugriff auf Sitzungsdaten
Für den Zugriff auf die Sitzungsdaten benötigen wir eine Sitzungsinstanz, auf die über eine HTTP-Anforderung zugegriffen werden kann. Nachdem wir die Instanz erhalten haben, können wir die verwendenget() Methode, die ein Argument nehmen wird, “key”, um die Sitzungsdaten zu erhalten.
$value = $request->session()->get('key');
Sie können verwenden all() Methode zum Abrufen aller Sitzungsdaten anstelle von get() Methode.
Sitzungsdaten speichern
Daten können in der Sitzung mit dem gespeichert werden put()Methode. Dasput() Methode wird zwei Argumente nehmen, die “key” und die “value”.
$request->session()->put('key', 'value');
Sitzungsdaten löschen
Das forget()Methode wird verwendet, um ein Element aus der Sitzung zu löschen. Diese Methode wird dauern“key” als Argument.
$request->session()->forget('key');
Verwenden flush() Methode anstelle von forget()Methode zum Löschen aller Sitzungsdaten. Verwenden Sie diepull()Methode zum Abrufen von Daten aus der Sitzung und zum anschließenden Löschen. Die pull () -Methode wird ebenfalls ausgeführtkeyals Argument. Der Unterschied zwischen demforget() und die pull() Methode ist das forget() Methode gibt den Wert der Sitzung und nicht zurück pull() Die Methode gibt es zurück und löscht diesen Wert aus der Sitzung.
Beispiel
Step 1 - Erstellen Sie einen Controller namens SessionController durch Ausführen des folgenden Befehls.
php artisan make:controller SessionController --plain
Step 2 - Nach erfolgreicher Ausführung erhalten Sie folgende Ausgabe:
Step 3 - Kopieren Sie den folgenden Code in eine Datei unter
app/Http/Controllers/SessionController.php.
app/Http/Controllers/SessionController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class SessionController extends Controller {
public function accessSessionData(Request $request) {
if($request->session()->has('my_name'))
echo $request->session()->get('my_name');
else
echo 'No data in the session';
}
public function storeSessionData(Request $request) {
$request->session()->put('my_name','Virat Gandhi');
echo "Data has been added to session";
}
public function deleteSessionData(Request $request) {
$request->session()->forget('my_name');
echo "Data has been removed from session.";
}
}
Step 4 - Fügen Sie die folgenden Zeilen hinzu app/Http/routes.php Datei.
app/Http/routes.php
Route::get('session/get','SessionController@accessSessionData');
Route::get('session/set','SessionController@storeSessionData');
Route::get('session/remove','SessionController@deleteSessionData');
Step 5 - Besuchen Sie die folgende URL zu set data in session.
http://localhost:8000/session/set
Step 6 - Die Ausgabe wird wie im folgenden Bild gezeigt angezeigt.
Step 7 - Besuchen Sie die folgende URL zu get data from session.
http://localhost:8000/session/get
Step 8 - Die Ausgabe wird wie im folgenden Bild gezeigt angezeigt.
Step 9 - Besuchen Sie die folgende URL zu remove session data.
http://localhost:8000/session/remove
Step 10 - Sie sehen eine Meldung wie im folgenden Bild gezeigt.