Maent yn ffordd hawdd o barhau â data ar gyfer y defnyddiwr presennol. Bydd y tiwtorial hwn yn rhoi'r pethau sylfaenol i chi o weithio gyda sesiynau yn Laravel.
Yn Laravel, mae sesiwn yn ffordd o storio gwybodaeth, i drin ceisiadau a wneir gan ddefnyddiwr yn gywir. Pan fydd defnyddiwr yn cychwyn cais Laravel, mae sesiwn yn cael ei gychwyn yn awtomatig ar gyfer y defnyddiwr hwnnw. Mae data sesiwn yn cael ei storio ar y gweinydd ac anfonir cwci bach gyda dynodwr unigryw i borwr y defnyddiwr i adnabod y sesiwn.
Gallwch ddefnyddio sesiwn i storio data rydych chi am ei ddefnyddio ar draws sawl tudalen neu geisiadau. Er enghraifft, efallai y byddwch chi'n defnyddio'r sesiwn ar gyfer dilysu defnyddwyr neu'n storio gwybodaeth arall rydych chi am ei defnyddio yn ystod y sesiwn ar eich cais.
I ddefnyddio sesiynau yn Laravel, yn gyntaf rhaid i chi eu galluogi yn y ffeil config/session.php
o gyfluniad. Yn y ffeil hon mae'n bosibl gosod paramedrau cyfluniad sy'n gysylltiedig â sesiynau. Er enghraifft, hyd y sesiwn, y gyrrwr i'w ddefnyddio ar gyfer storio data'r sesiwn, a'r lleoliad storio ar gyfer data'r sesiwn.
Isod mae enghraifft o ffeil sessions.php
gyda hyd sesiwn 120 eiliad, defnyddio ffeiliau sydd wedi'u storio yn y cyfeiriadur 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',
];
Gallwch hefyd ffurfweddu'r sesiwn gan ddefnyddio newidynnau amgylchedd yn y ffeil .env
. Er enghraifft, i ddefnyddio gyrrwr sesiwn y gronfa ddata a storio data sesiwn mewn tabl sesiwn, gyda DB math MySQL, gallwch osod y newidynnau amgylchedd canlynol:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Mae tair ffordd o weithio gyda data sesiwn yn Laravel:
helper
o global session
;Request instance
. Ym mhob un o'r achosion hyn, bydd y data rydych chi'n ei storio yn y sesiwn ar gael mewn ceisiadau dilynol a wneir gan yr un defnyddiwr nes bod y sesiwn yn dod i ben neu'n cael ei ddinistrio â llaw.
Yn Laravel, gan ddefnyddio'r swyddogaeth Global Session Helper
mae'n ffordd gyfleus o gael mynediad at y gwasanaethau sesiwn a ddarperir gan y fframwaith. Mae'n caniatáu i chi storio ac adalw data o'r sesiwn yn eich cais. Dyma enghraifft o sut i ddefnyddio'r 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();
Gallwch hefyd basio rhagwerthdefinite fel yr ail ddadl i'r swyddogaeth session
, a fydd yn cael ei ddychwelyd os na cheir yr allwedd a nodwyd yn y sesiwn:
$value = session('key', 'default');
Session Request
Yn Laravel, mae enghraifft cais sesiwn yn cyfeirio at wrthrych sy'n cynrychioli cais HTTP ac sy'n cynnwys gwybodaeth am y cais, megis y dull cais (GET, POST, PUT, ac ati), URL cais, penawdau'r cais a'r corff cais . Mae hefyd yn cynnwys amrywiol ddulliau y gellir eu defnyddio i adalw a thrin y wybodaeth hon.
Yn nodweddiadol, rydych chi'n cyrchu enghraifft y Session Request
trwy'r newidyn $request
mewn cais Laravel. Er enghraifft, gellir cyrchu sesiwn trwy enghraifft cais gan ddefnyddio'r swyddogaeth helpwr 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');
}
}
Yn yr enghraifft hon, y newidyn $request
engraifft o'r dosbarth ydyw Illuminate\Http\Request
, sy'n cynrychioli'r cais HTTP cyfredol. Y swyddogaeth session
cais enghraifft yn dychwelyd enghraifft o'r dosbarth Illuminate\Session\Store
, sy'n darparu swyddogaethau amrywiol ar gyfer gweithio gyda'r sesiwn.
Ercole Palmeri
Perfformiwyd gweithrediad offthalmoplasti gan ddefnyddio gwyliwr masnachol Apple Vision Pro yn y Catania Polyclinic…
Mae datblygu sgiliau echddygol manwl trwy liwio yn paratoi plant ar gyfer sgiliau mwy cymhleth fel ysgrifennu. I liwio…
Mae'r sector llyngesol yn bŵer economaidd byd-eang gwirioneddol, sydd wedi llywio tuag at farchnad 150 biliwn...
Ddydd Llun diwethaf, cyhoeddodd y Financial Times gytundeb ag OpenAI. Mae FT yn trwyddedu ei newyddiaduraeth o safon fyd-eang…