Олар ағымдағы пайдаланушы үшін деректерді сақтаудың оңай жолы. Бұл оқулық сізге Ларавелдегі сеанстармен жұмыс істеу негіздерін береді.
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
della global session
;Request instance
. Осы жағдайлардың барлығында сеанста сақтаған деректер сеанс мерзімі біткенше немесе қолмен жойылмайынша сол пайдаланушы жасаған кейінгі сұрауларда қолжетімді болады.
Ларавелде функцияны пайдалану 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 өзінің әлемдік деңгейдегі журналистикасына лицензия береді…
Миллиондаған адамдар ай сайынғы абоненттік төлемді төлей отырып, ағынды қызметтерге ақы төлейді. Жалпы пікір, сіз…
Veeam ұсынған Coveware кибербопсалау оқиғаларына жауап беру қызметтерін көрсетуді жалғастырады. Coveware криминалистикалық және қалпына келтіру мүмкіндіктерін ұсынады ...