Jie yra paprastas būdas išsaugoti esamo vartotojo duomenis. Šioje pamokoje sužinosite, kaip dirbti su Laravel sesijomis.
Laravel sesija yra būdas saugoti informaciją, teisingai tvarkyti vartotojo pateiktas užklausas. Kai vartotojas paleidžia Laravel programą, to vartotojo sesija pradedama automatiškai. Seanso duomenys saugomi serveryje, o nedidelis slapukas su unikaliu identifikatoriumi išsiunčiamas į vartotojo naršyklę seansui identifikuoti.
Galite naudoti seansą duomenims, kuriuos norite naudoti keliuose puslapiuose arba užklausose, saugoti. Pavyzdžiui, sesiją galite naudoti naudotojo autentifikavimui arba išsaugoti kitą informaciją, kurią norite naudoti seanso metu programoje.
Norėdami naudoti seansus Laravel, pirmiausia turite juos įjungti faile config/session.php
konfigūracijos. Šiame faile galima nustatyti konfigūracijos parametrus, susijusius su seansais. Pavyzdžiui, seanso trukmė, tvarkyklė, naudojama seanso duomenims saugoti, ir seanso duomenų saugojimo vieta.
Žemiau pateikiamas failo pavyzdys sessions.php
su seanso trukme 120 sekundžių, kataloge saugomų failų naudojimas 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',
];
Seansą taip pat galite konfigūruoti naudodami aplinkos kintamuosius faile .env
. Pavyzdžiui, norėdami naudoti duomenų bazės seanso tvarkyklę ir saugoti seanso duomenis seanso lentelėje su MySQL tipo DB, galite nustatyti šiuos aplinkos kintamuosius:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Yra trys būdai, kaip dirbti su Laravel seanso duomenimis:
helper
iš global session
;Request instance
. Visais šiais atvejais duomenys, kuriuos saugote seanso metu, bus pasiekiami to paties vartotojo pateiktose vėlesnėse užklausose, kol baigsis seanso galiojimas arba jie bus sunaikinti rankiniu būdu.
Laravel, naudojant funkciją Global Session Helper
tai patogus būdas pasiekti sistemos teikiamas seanso paslaugas. Tai leidžia programoje saugoti ir gauti duomenis iš seanso. Čia yra pavyzdys, kaip naudoti 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();
Taip pat galite perduoti išankstinę vertędefinite kaip antrasis funkcijos argumentas session
, kuris bus grąžintas, jei sesijoje nerastas nurodytas raktas:
$value = session('key', 'default');
Session Request
„Laravel“ seanso užklausos egzempliorius nurodo objektą, vaizduojantį HTTP užklausą ir kuriame yra informacijos apie užklausą, pvz., užklausos metodą (GET, POST, PUT ir kt.), užklausos URL, užklausos antraštes ir užklausos turinį. . Jame taip pat yra įvairių metodų, kuriuos galima naudoti norint gauti ir valdyti šią informaciją.
Paprastai pasiekiate egzempliorių Session Request
per kintamąjį $request
Laravel programoje. Pavyzdžiui, seansą galima pasiekti per užklausos egzempliorių naudojant pagalbinę funkciją 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');
}
}
Šiame pavyzdyje kintamasis $request
tai klasės pavyzdys Illuminate\Http\Request
, kuri reiškia dabartinę HTTP užklausą. Funkcija session
užklausos egzempliorius grąžina klasės egzempliorių Illuminate\Session\Store
, kuri suteikia įvairias funkcijas dirbant su sesija.
Ercole Palmeri
Katanijos poliklinikoje buvo atlikta oftalmoplastikos operacija naudojant „Apple Vision Pro“ reklaminę peržiūrą…
Lavindami smulkiosios motorikos įgūdžius dažydami, vaikai paruošiami sudėtingesniems įgūdžiams, pavyzdžiui, rašymui. Norėdami nuspalvinti…
Karinio jūrų laivyno sektorius yra tikra pasaulinė ekonominė galia, kuri pasiekė 150 mlrd.
Praėjusį pirmadienį „Financial Times“ paskelbė apie susitarimą su „OpenAI“. FT licencijuoja savo pasaulinio lygio žurnalistiką…