Oni su jednostavan način za zadržavanje podataka za trenutnog korisnika. Ovaj vodič će vam dati osnove rada sa sesijama u Laravelu.
U Laravel-u, sesija je način za pohranjivanje informacija, za pravilno rukovanje zahtjevima korisnika. Kada korisnik pokrene Laravel aplikaciju, sesija se automatski pokreće za tog korisnika. Podaci o sesiji se pohranjuju na serveru i mali kolačić sa jedinstvenim identifikatorom se šalje korisnikovom pretraživaču da identifikuje sesiju.
Možete koristiti sesiju za pohranjivanje podataka koje želite koristiti na više stranica ili zahtjeva. Na primjer, možete koristiti sesiju za autentifikaciju korisnika ili pohraniti druge informacije koje želite koristiti tokom sesije u vašoj aplikaciji.
Da biste koristili sesije u Laravelu, prvo ih morate omogućiti u datoteci config/session.php
konfiguracije. U ovoj datoteci moguće je postaviti konfiguracijske parametre vezane za sesije. Kao što je trajanje sesije, upravljački program koji treba koristiti za pohranjivanje podataka sesije i lokacija za pohranu podataka o sesiji.
Ispod je primjer datoteke sessions.php
sa trajanjem sesije 120 sekundi, korištenje datoteka pohranjenih u direktoriju 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',
];
Također možete konfigurirati sesiju koristeći varijable okruženja u datoteci .env
. Na primjer, da biste koristili drajver sesije baze podataka i pohranili podatke sesije u tablicu sesije, sa MySQL DB-om, možete postaviti sljedeće varijable okruženja:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Postoje tri načina rada sa podacima sesije u Laravelu:
helper
della global session
;Request instance
. U svim ovim slučajevima, podaci koje pohranite u sesiji bit će dostupni u narednim zahtjevima istog korisnika sve dok sesija ne istekne ili se ručno ne unište.
U Laravelu, koristeći funkciju Global Session Helper
to je zgodan način za pristup uslugama sesije koje pruža okvir. Omogućava vam pohranjivanje i preuzimanje podataka iz sesije u vašoj aplikaciji. Evo primjera kako koristiti 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();
Također možete proslijediti vrijednost unaprijeddefinited kao drugi argument funkcije session
, koji će biti vraćen ako navedeni ključ nije pronađen u sesiji:
$value = session('key', 'default');
Session Request
U Laravelu, instanca zahtjeva za sesijom se odnosi na objekat koji predstavlja HTTP zahtjev i sadrži informacije o zahtjevu, kao što je metoda zahtjeva (GET, POST, PUT, itd.), URL zahtjeva, zaglavlja zahtjeva i tijelo zahtjeva . Takođe sadrži različite metode koje se mogu koristiti za pronalaženje i manipulaciju ovim informacijama.
Obično pristupate instanci Session Request
kroz promenljivu $request
u Laravel aplikaciji. Na primjer, sesiji se može pristupiti preko instance zahtjeva koristeći pomoćnu funkciju 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');
}
}
U ovom primjeru, varijabla $request
to je instanca klase Illuminate\Http\Request
, koji predstavlja trenutni HTTP zahtjev. Funkcija session
request instance vraća instancu klase Illuminate\Session\Store
, koji pruža različite funkcije za rad sa sesijom.
Ercole Palmeri
Predstavljen godišnji izvještaj Casaleggio Associati o e-trgovini u Italiji. Izvještaj pod nazivom “AI-Commerce: granice e-trgovine s umjetnom inteligencijom”.…
Rezultat stalnih tehnoloških inovacija i posvećenosti životnoj sredini i dobrobiti ljudi. Bandalux predstavlja Airpure®, šator…
Dizajnerski obrasci su specifična rješenja niskog nivoa za ponavljajuće probleme u dizajnu softvera. Dizajnerski obrasci su…
Magica je iPhone aplikacija koja čini upravljanje vozilom jednostavnim i efikasnim, pomažući vozačima da štede i…