Huma mod faċli biex tippersisti data għall-utent attwali. Dan it-tutorja jagħtik il-pedament biex taħdem b'sessjonijiet f'Laravel.
F'Laravel, sessjoni hija mod kif taħżen l-informazzjoni, biex timmaniġġja sew it-talbiet magħmula minn utent. Meta utent iniedi applikazzjoni Laravel, awtomatikament tibda sessjoni għal dak l-utent. Id-dejta tas-sessjoni hija maħżuna fuq is-server u cookie żgħira b'identifikatur uniku tintbagħat lill-browser tal-utent biex tidentifika s-sessjoni.
Tista' tuża s-sessjoni biex taħżen data li trid tuża fuq bosta paġni jew talbiet. Pereżempju, tista' tuża s-sessjoni għall-awtentikazzjoni tal-utent jew taħżen informazzjoni oħra li trid tuża matul is-sessjoni fuq l-applikazzjoni tiegħek.
Biex tuża sessjonijiet f'Laravel, l-ewwel trid tattivahom fil-fajl config/session.php
tal-konfigurazzjoni. F'dan il-fajl tista' tissettja parametri ta' konfigurazzjoni relatati mas-sessjonijiet. Pereżempju, it-tul tas-sessjoni, is-sewwieq li għandu juża għall-ħażna tad-dejta tas-sessjoni, u l-post tal-ħażna għad-dejta tas-sessjoni.
Hawn taħt hemm fajl eżempju sessions.php
b'tul ta 'sessjoni 120 sekonda, użu ta' fajls maħżuna fid-direttorju 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',
];
Tista 'wkoll tikkonfigura s-sessjoni billi tuża varjabbli ambjentali fil-fajl .env
. Pereżempju, biex tuża s-sewwieq tas-sessjoni tad-database u taħżen id-dejta tas-sessjoni f'tabella tas-sessjoni, bit-tip MySQL DB, tista 'tissettja l-varjabbli ambjentali li ġejjin:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Hemm tliet modi kif taħdem bid-dejta tas-sessjoni f'Laravel:
helper
ta ' global session
;Request instance
. F'dawn il-każijiet kollha, id-dejta li taħżen fis-sessjoni tkun disponibbli f'talbiet sussegwenti magħmula mill-istess utent sakemm is-sessjoni tiskadi jew tinqered manwalment.
F'Laravel, bl-użu tal-funzjoni Global Session Helper
huwa mod konvenjenti biex taċċessa s-servizzi tas-sessjoni pprovduti mill-qafas. Jippermettilek taħżen u tirkupra data mis-sessjoni fl-applikazzjoni tiegħek. Hawn eżempju ta 'kif tuża l- 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();
Tista 'wkoll tgħaddi valur predefinited bħala t-tieni argument għall-funzjoni session
, li tiġi rritornata jekk iċ-ċavetta speċifikata ma tinstabx fis-sessjoni:
$value = session('key', 'default');
Session Request
F'Laravel, istanza ta' talba ta' sessjoni tirreferi għal oġġett li jirrappreżenta talba HTTP u fih informazzjoni dwar it-talba, bħall-metodu ta' talba (GET, POST, PUT, eċċ.), URL tat-talba, headers tat-talba u l-korp tar-rikjesta. . Fiha wkoll diversi metodi li jistgħu jintużaw biex tiġi rkuprata u mmanipulata din l-informazzjoni.
Tipikament ikollok aċċess għall-istanza ta Session Request
permezz tal-varjabbli $request
f'applikazzjoni Laravel. Pereżempju, tista' taċċessa sessjoni permezz ta' istanza ta' talba billi tuża l-funzjoni 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');
}
}
F'dan l-eżempju, il-varjabbli $request
hija eżempju tal-klassi Illuminate\Http\Request
, li tirrappreżenta t-talba HTTP attwali. Il-funzjoni session
tal-istanza tat-talba tirritorna istanza tal-klassi Illuminate\Session\Store
, li tipprovdi diversi funzjonijiet biex taħdem mas-sessjoni.
Ercole Palmeri
Is-settur navali huwa qawwa ekonomika globali vera, li navigat lejn suq ta’ 150 biljun...
It-Tnejn li għadda, il-Financial Times ħabbret ftehim mal-OpenAI. FT tagħti liċenzja għall-ġurnaliżmu ta’ klassi dinjija tagħha...
Miljuni ta 'nies iħallsu għal servizzi ta' streaming, iħallsu miżati ta 'abbonament ta' kull xahar. Hija opinjoni komuni li inti...
Coveware minn Veeam se jkompli jipprovdi servizzi ta' rispons għal inċidenti ta' estorsjoni ċibernetika. Coveware se joffri forensiċi u kapaċitajiet ta' rimedju...