Představují snadný způsob, jak zachovat data pro aktuálního uživatele. Tento tutoriál vám poskytne základy práce s relacemi v Laravelu.
V Laravelu je relace způsob, jak uložit informace, jak správně zpracovat požadavky uživatele. Když uživatel spustí aplikaci Laravel, automaticky se pro tohoto uživatele spustí relace. Údaje o relaci jsou uloženy na serveru a do prohlížeče uživatele je odeslán malý soubor cookie s jedinečným identifikátorem, který relaci identifikuje.
Relaci můžete použít k ukládání dat, která chcete použít na více stránkách nebo žádostech. Můžete například použít relaci pro autentizaci uživatele nebo uložit další informace, které chcete použít během relace ve vaší aplikaci.
Chcete-li používat relace v Laravelu, musíte je nejprve povolit v souboru config/session.php
konfigurace. V tomto souboru je možné nastavit konfigurační parametry související s relacemi. Jako je doba trvání relace, ovladač, který se má použít pro ukládání dat relace, a umístění úložiště pro data relace.
Níže je uveden příklad souboru sessions.php
s dobou trvání relace 120 sekund, použití souborů uložených v adresáři 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',
];
Relaci můžete také nakonfigurovat pomocí proměnných prostředí v souboru .env
. Chcete-li například použít ovladač relace databáze a uložit data relace do tabulky relací, s DB typu MySQL můžete nastavit následující proměnné prostředí:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
V Laravelu jsou tři způsoby práce s daty relace:
helper
z global session
;Request instance
. Ve všech těchto případech budou data uložená v relaci dostupná v následných požadavcích stejného uživatele, dokud relace nevyprší nebo nebude ručně zničena.
V Laravelu pomocí funkce Global Session Helper
je to pohodlný způsob přístupu ke službám relace poskytovaným rámcem. Umožňuje vám ukládat a načítat data z relace ve vaší aplikaci. Zde je příklad, jak použít 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();
Můžete také předat předběžnou hodnotudefinite jako druhý argument funkce session
, která bude vrácena, pokud zadaný klíč nebude v relaci nalezen:
$value = session('key', 'default');
Session Request
V Laravelu instance požadavku relace odkazuje na objekt, který představuje požadavek HTTP a obsahuje informace o požadavku, jako je metoda požadavku (GET, POST, PUT atd.), URL požadavku, záhlaví požadavku a tělo požadavku. . Obsahuje také různé metody, které lze použít k získání a manipulaci s těmito informacemi.
Obvykle přistupujete k instanci souboru Session Request
přes proměnnou $request
v aplikaci Laravel. Například k relaci lze přistupovat prostřednictvím instance požadavku pomocí funkce helper 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');
}
}
V tomto příkladu proměnná $request
je to instance třídy Illuminate\Http\Request
, který představuje aktuální požadavek HTTP. Funkce session
instance požadavku vrátí instanci třídy Illuminate\Session\Store
, který poskytuje různé funkce pro práci s relací.
Ercole Palmeri
Rozvíjení jemné motoriky prostřednictvím vybarvování připravuje děti na složitější dovednosti, jako je psaní. Barvit…
Námořní sektor je skutečnou globální ekonomickou velmocí, která se dostala na 150miliardový trh...
Minulé pondělí Financial Times oznámily dohodu s OpenAI. FT licencuje svou prvotřídní žurnalistiku…
Miliony lidí platí za streamovací služby a platí měsíční předplatné. Je obecný názor, že jste…