Гэта просты спосаб захавання дадзеных для бягучага карыстальніка. Гэты падручнік дасць вам асновы працы з сесіямі ў Laravel.
У Laravel сеанс - гэта спосаб захоўвання інфармацыі, каб правільна апрацоўваць запыты, зробленыя карыстальнікам. Калі карыстальнік запускае прыкладанне Laravel, для гэтага карыстальніка аўтаматычна запускаецца сеанс. Даныя аб сеансе захоўваюцца на серверы, а невялікі файл cookie з унікальным ідэнтыфікатарам адпраўляецца ў браўзер карыстальніка для ідэнтыфікацыі сеанса.
Вы можаце выкарыстоўваць сеанс для захоўвання дадзеных, якія вы хочаце выкарыстоўваць на некалькіх старонках або запытах. Напрыклад, вы можаце выкарыстоўваць сеанс для аўтэнтыфікацыі карыстальніка або захоўваць у сваім дадатку іншую інфармацыю, якую хочаце выкарыстоўваць падчас сеансу.
Каб выкарыстоўваць сеансы ў Laravel, вы павінны спачатку ўключыць іх у файле config/session.php
канфігурацыі. У гэтым файле можна задаць параметры канфігурацыі, звязаныя з сесіямі. Напрыклад, працягласць сеанса, драйвер, які будзе выкарыстоўвацца для захавання даных сеанса, і месца захавання даных сеанса.
Ніжэй прыведзены прыклад файла sessions.php
з працягласцю сеансу 120 секунд, выкарыстанне файлаў, якія захоўваюцца ў каталогу 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',
];
Вы таксама можаце наладзіць сеанс з дапамогай зменных асяроддзя ў файле .env
. Напрыклад, каб выкарыстоўваць драйвер сеансу базы дадзеных і захоўваць дадзеныя сеансу ў табліцы сеансаў, з БД тыпу MySQL, вы можаце ўсталяваць наступныя зменныя асяроддзя:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Ёсць тры спосабы працы з дадзенымі сесіі ў Laravel:
helper
з global session
;Request instance
. Ва ўсіх гэтых выпадках даныя, якія вы захоўваеце ў сеансе, будуць даступныя ў наступных запытах, зробленых тым жа карыстальнікам, пакуль сеанс не скончыцца або не будзе знішчаны ўручную.
У Laravel, выкарыстоўваючы функцыю Global Session Helper
гэта зручны спосаб атрымаць доступ да сеансавых службаў, якія прадстаўляюцца фрэймворкам. Гэта дазваляе захоўваць і атрымліваць даныя сеанса ў вашым дадатку. Вось прыклад таго, як выкарыстоўваць 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();
Вы таксама можаце перадаць папярэдняе значэннеdefinite як другі аргумент функцыі session
, які будзе вернуты, калі ўказаны ключ не знойдзены ў сеансе:
$value = session('key', 'default');
Session Request
У Laravel асобнік запыту сесіі адносіцца да аб'екта, які прадстаўляе запыт HTTP і змяшчае інфармацыю аб запыце, такую як метад запыту (GET, POST, PUT і г.д.), URL запыту, загалоўкі запыту і цела запыту . Ён таксама змяшчае розныя метады, якія можна выкарыстоўваць для атрымання і маніпулявання гэтай інфармацыяй.
Звычайна вы атрымліваеце доступ да асобніка Session Request
праз зменную $request
у дадатку Laravel. Напрыклад, да сеансу можна атрымаць доступ праз асобнік запыту з дапамогай дапаможнай функцыі 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');
}
}
У гэтым прыкладзе зменная $request
гэта асобнік класа Illuminate\Http\Request
, які прадстаўляе бягучы запыт HTTP. Функцыя session
экзэмпляр запыту вяртае асобнік класа Illuminate\Session\Store
, які забяспечвае розныя функцыі для працы з сесіяй.
Ercole Palmeri
Ваенна-марскі сектар - гэта сапраўдная глабальная эканамічная сіла, якая перайшла да 150-мільярднага рынку...
У мінулы панядзелак Financial Times абвясціла аб здзелцы з OpenAI. FT ліцэнзуе сваю журналістыку сусветнага ўзроўню...
Мільёны людзей плацяць за струменевыя паслугі, плацячы штомесячную абаненцкую плату. Распаўсюджана меркаванне, што вы…
Coveware ад Veeam працягне прадастаўляць паслугі рэагавання на інцыдэнты кібервымагальніцтва. Coveware будзе прапаноўваць судова-медыцынскую экспертызу і магчымасці выпраўлення…