De er en enkel måte å opprettholde data for gjeldende bruker. Denne opplæringen vil gi deg det grunnleggende om å jobbe med økter i Laravel.
I Laravel er en økt en måte å lagre informasjon på, for å korrekt håndtere forespørsler fra en bruker. Når en bruker starter en Laravel-applikasjon, startes en økt automatisk for den brukeren. Sesjonsdata lagres på serveren og en liten informasjonskapsel med en unik identifikator sendes til brukerens nettleser for å identifisere økten.
Du kan bruke økten til å lagre data du vil bruke på flere sider eller forespørsler. Du kan for eksempel bruke økten til brukerautentisering eller lagre annen informasjon som du vil bruke under økten i applikasjonen din.
For å bruke økter i Laravel må du først aktivere dem i filen config/session.php
av konfigurasjonen. I denne filen er det mulig å angi konfigurasjonsparametere relatert til økter. For eksempel varigheten av økten, driveren som skal brukes til å lagre øktdataene og lagringsstedet for øktdataene.
Nedenfor er et eksempel på en fil sessions.php
med øktvarighet 120 sekunder, bruk av filer lagret i katalogen 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',
];
Du kan også konfigurere økten ved å bruke miljøvariabler i filen .env
. For for eksempel å bruke databasesesjonsdriveren og lagre øktdata i en sesjonstabell, med MySQL-type DB, kan du angi følgende miljøvariabler:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Det er tre måter å jobbe med øktdata på i Laravel:
helper
av global session
;Request instance
. I alle disse tilfellene vil dataene du lagrer i økten være tilgjengelige i påfølgende forespørsler fra samme bruker til økten utløper eller blir manuelt ødelagt.
I Laravel, ved å bruke funksjonen Global Session Helper
det er en praktisk måte å få tilgang til økttjenestene levert av rammeverket. Den lar deg lagre og hente data fra økten i applikasjonen din. Her er et eksempel på hvordan du bruker 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();
Du kan også sende en forhåndsverdidefinite som det andre argumentet til funksjonen session
, som vil bli returnert hvis den angitte nøkkelen ikke finnes i økten:
$value = session('key', 'default');
Session Request
I Laravel refererer en sesjonsforespørselsinstans til et objekt som representerer en HTTP-forespørsel og inneholder informasjon om forespørselen, for eksempel forespørselsmetoden (GET, POST, PUT, etc.), forespørsels-URL, overskrifter på forespørselen og forespørselsteksten . Den inneholder også ulike metoder som kan brukes til å hente og manipulere denne informasjonen.
Vanligvis får du tilgang til forekomsten av Session Request
gjennom variabelen $request
i en Laravel-applikasjon. For eksempel kan en sesjon nås gjennom en forespørselsforekomst ved å bruke hjelpefunksjonen 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');
}
}
I dette eksemplet er variabelen $request
det er en forekomst av klassen Illuminate\Http\Request
, som representerer gjeldende HTTP-forespørsel. Funksjonen session
request instans returnerer en instans av klassen Illuminate\Session\Store
, som gir ulike funksjoner for å jobbe med økten.
Ercole Palmeri
Å utvikle finmotorikk gjennom fargelegging forbereder barna på mer komplekse ferdigheter som å skrive. Å farge…
Marinesektoren er en ekte global økonomisk makt, som har navigert mot et 150 milliarder marked...
Sist mandag kunngjorde Financial Times en avtale med OpenAI. FT lisensierer sin journalistikk i verdensklasse...
Millioner av mennesker betaler for strømmetjenester og betaler månedlige abonnementsavgifter. Det er vanlig oppfatning at du...