Sunt o modalitate ușoară de a păstra datele pentru utilizatorul actual. Acest tutorial vă va oferi elementele de bază ale lucrului cu sesiuni în Laravel.
În Laravel, o sesiune este o modalitate de a stoca informații, de a gestiona corect solicitările făcute de un utilizator. Când un utilizator pornește o aplicație Laravel, o sesiune este pornită automat pentru acel utilizator. Datele sesiunii sunt stocate pe server și un mic cookie cu un identificator unic este trimis către browserul utilizatorului pentru a identifica sesiunea.
Puteți folosi sesiunea pentru a stoca datele pe care doriți să le utilizați în mai multe pagini sau solicitări. De exemplu, puteți utiliza sesiunea pentru autentificarea utilizatorului sau puteți stoca alte informații pe care doriți să le utilizați în timpul sesiunii în aplicația dvs.
Pentru a utiliza sesiunile în Laravel, trebuie mai întâi să le activați în fișier config/session.php
de configurare. În acest fișier este posibil să setați parametrii de configurare aferenti sesiunilor. Cum ar fi durata sesiunii, driverul de utilizat pentru stocarea datelor sesiunii și locația de stocare pentru datele sesiunii.
Mai jos este un exemplu de fișier sessions.php
cu durata sesiunii de 120 de secunde, utilizarea fișierelor stocate în director 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',
];
De asemenea, puteți configura sesiunea folosind variabilele de mediu din fișier .env
. De exemplu, pentru a utiliza driverul de sesiune al bazei de date și pentru a stoca datele de sesiune într-un tabel de sesiune, cu DB de tip MySQL, puteți seta următoarele variabile de mediu:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Există trei moduri de a lucra cu datele de sesiune în Laravel:
helper
de global session
;Request instance
. În toate aceste cazuri, datele pe care le stocați în sesiune vor fi disponibile în solicitările ulterioare făcute de același utilizator până când sesiunea expiră sau este distrusă manual.
În Laravel, folosind funcția Global Session Helper
este o modalitate convenabilă de a accesa serviciile de sesiune oferite de framework. Vă permite să stocați și să preluați date din sesiune în aplicația dvs. Iată un exemplu despre cum se utilizează 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();
De asemenea, puteți trece o valoare predefinite ca al doilea argument al funcției session
, care va fi returnat dacă cheia specificată nu este găsită în sesiune:
$value = session('key', 'default');
Session Request
În Laravel, o instanță de solicitare de sesiune se referă la un obiect care reprezintă o solicitare HTTP și conține informații despre cerere, cum ar fi metoda solicitării (GET, POST, PUT etc.), URL-ul solicitării, anteturile solicitării și corpul solicitării. . Conține, de asemenea, diverse metode care pot fi folosite pentru a prelua și manipula aceste informații.
De obicei, accesați instanța Session Request
prin variabila $request
într-o aplicație Laravel. De exemplu, o sesiune poate fi accesată printr-o instanță de solicitare folosind funcția de ajutor 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');
}
}
În acest exemplu, variabila $request
este o instanță a clasei Illuminate\Http\Request
, care reprezintă cererea HTTP curentă. Functia session
request instance returnează o instanță a clasei Illuminate\Session\Store
, care oferă diverse funcții pentru lucrul cu sesiunea.
Ercole Palmeri
Luni trecută, Financial Times a anunțat un acord cu OpenAI. FT își licențiază jurnalismul de clasă mondială...
Milioane de oameni plătesc pentru serviciile de streaming, plătind taxe lunare de abonament. Este o părere comună că tu...
Coveware de la Veeam va continua să ofere servicii de răspuns la incidente de extorcare cibernetică. Coveware va oferi capacități criminalistice și de remediere...
Întreținerea predictivă revoluționează sectorul petrolului și gazelor, cu o abordare inovatoare și proactivă a managementului uzinelor...