Són una manera fàcil de conservar les dades de l'usuari actual. Aquest tutorial us donarà les bases per treballar amb sessions a Laravel.
A Laravel, una sessió és una manera d'emmagatzemar informació, de gestionar correctament les peticions realitzades per un usuari. Quan un usuari inicia una aplicació Laravel, s'inicia automàticament una sessió per a aquest usuari. Les dades de la sessió s'emmagatzemen al servidor i s'envia una petita galeta amb un identificador únic al navegador de l'usuari per identificar la sessió.
Podeu utilitzar la sessió per emmagatzemar les dades que voleu utilitzar en diverses pàgines o sol·licituds. Per exemple, podeu utilitzar la sessió per a l'autenticació d'usuari o emmagatzemar altra informació que voleu utilitzar durant la sessió a la vostra aplicació.
Per utilitzar sessions a Laravel, primer heu d'habilitar-les al fitxer config/session.php
de configuració. En aquest fitxer és possible establir paràmetres de configuració relacionats amb les sessions. Com ara la durada de la sessió, el controlador que s'utilitzarà per emmagatzemar les dades de la sessió i la ubicació d'emmagatzematge de les dades de la sessió.
A continuació es mostra un exemple d'un fitxer sessions.php
amb una durada de la sessió de 120 segons, ús dels fitxers emmagatzemats al directori 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',
];
També podeu configurar la sessió mitjançant les variables d'entorn del fitxer .env
. Per exemple, per utilitzar el controlador de sessió de base de dades i emmagatzemar dades de sessió en una taula de sessió, amb la base de dades de tipus MySQL, podeu establir les variables d'entorn següents:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Hi ha tres maneres de treballar amb dades de sessió a Laravel:
helper
de global session
;Request instance
. En tots aquests casos, les dades que emmagatzemeu a la sessió estaran disponibles en les posteriors sol·licituds realitzades pel mateix usuari fins que la sessió caduqui o es destrueixi manualment.
A Laravel, utilitzant la funció Global Session Helper
és una manera còmoda d'accedir als serveis de sessió proporcionats pel framework. Us permet emmagatzemar i recuperar dades de la sessió a la vostra aplicació. Aquí teniu un exemple de com utilitzar el 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();
També podeu passar un valor predefinite com a segon argument de la funció session
, que es retornarà si la clau especificada no es troba a la sessió:
$value = session('key', 'default');
Session Request
A Laravel, una instància de sol·licitud de sessió fa referència a un objecte que representa una sol·licitud HTTP i conté informació sobre la sol·licitud, com ara el mètode de sol·licitud (GET, POST, PUT, etc.), l'URL de la sol·licitud, les capçaleres de la sol·licitud i el cos de la sol·licitud. . També conté diversos mètodes que es poden utilitzar per recuperar i manipular aquesta informació.
Normalment s'accedeix a la instància del Session Request
a través de la variable $request
en una aplicació Laravel. Per exemple, es pot accedir a una sessió mitjançant una instància de sol·licitud mitjançant la funció d'ajuda 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');
}
}
En aquest exemple, la variable $request
és una instància de la classe Illuminate\Http\Request
, que representa la sol·licitud HTTP actual. La funció session
request instance retorna una instància de la classe Illuminate\Session\Store
, que ofereix diverses funcions per treballar amb la sessió.
Ercole Palmeri
Es va realitzar una operació d'oftalmoplàstia amb el visualitzador comercial Apple Vision Pro a la Policlínica de Catània...
El desenvolupament de la motricitat fina a través del color prepara els nens per a habilitats més complexes com escriure. Per acolorir...
El sector naval és una veritable potència econòmica mundial, que ha navegat cap a un mercat de 150 milions...
Dilluns passat, el Financial Times va anunciar un acord amb OpenAI. FT autoritza el seu periodisme de classe mundial...