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
Qualsevol operació empresarial produeix moltes dades, fins i tot en diferents formes. Introduïu manualment aquestes dades des d'un full d'Excel per...
El compromís dels correus electrònics de l'empresa va augmentar més del doble en els primers tres mesos del 2024 en comparació amb l'últim trimestre de...
El principi de segregació d'interfícies és un dels cinc principis SOLID del disseny orientat a objectes. Una classe hauria de tenir...
Microsoft Excel és l'eina de referència per a l'anàlisi de dades, perquè ofereix moltes funcions per organitzar conjunts de dades,...
Walliance, SIM i plataforma entre els líders a Europa en el camp del crowdfunding immobiliari des del 2017, anuncia la finalització...
El filament és un marc de desenvolupament "accelerat" de Laravel, que proporciona diversos components de pila completa. Està dissenyat per simplificar el procés de...
«He de tornar per completar la meva evolució: em projectaré dins de l'ordinador i em convertiré en pura energia. Un cop instal·lats a…
Google DeepMind està introduint una versió millorada del seu model d'intel·ligència artificial. El nou model millorat ofereix no només...