Ular joriy foydalanuvchi uchun ma'lumotlarni saqlab qolishning oson yo'lidir. Ushbu qo'llanma sizga Laravelda seanslar bilan ishlash asoslarini beradi.
Laravelda seans ma'lumotni saqlash, foydalanuvchi so'rovlarini to'g'ri bajarish usulidir. Agar foydalanuvchi Laravel dasturini ishga tushirsa, u foydalanuvchi uchun avtomatik ravishda seans boshlanadi. Seans ma'lumotlari serverda saqlanadi va seansni aniqlash uchun foydalanuvchi brauzeriga noyob identifikatorga ega kichik cookie fayli yuboriladi.
Bir nechta sahifalar yoki so'rovlar bo'ylab foydalanmoqchi bo'lgan ma'lumotlarni saqlash uchun sessiyadan foydalanishingiz mumkin. Masalan, siz seansdan foydalanuvchi autentifikatsiyasi uchun foydalanishingiz yoki seans davomida foydalanmoqchi bo'lgan boshqa ma'lumotlarni ilovangizda saqlashingiz mumkin.
Laravelda seanslardan foydalanish uchun avval ularni faylda yoqishingiz kerak config/session.php
konfiguratsiya. Ushbu faylda seanslar bilan bog'liq konfiguratsiya parametrlarini o'rnatish mumkin. Seansning davomiyligi, seans ma'lumotlarini saqlash uchun foydalaniladigan drayver va seans ma'lumotlarini saqlash joyi kabi.
Quyida faylga misol keltirilgan sessions.php
seans davomiyligi 120 soniya, katalogda saqlangan fayllardan foydalanish 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',
];
Shuningdek, fayldagi muhit o'zgaruvchilari yordamida seansni sozlashingiz mumkin .env
. Misol uchun, MySQL tipidagi ma'lumotlar bazasi bilan ma'lumotlar bazasi seansi drayverini ishlatish va seans ma'lumotlarini seans jadvalida saqlash uchun siz quyidagi muhit o'zgaruvchilarini o'rnatishingiz mumkin:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Laravelda sessiya ma'lumotlari bilan ishlashning uchta usuli mavjud:
helper
della global session
;Request instance
. Ushbu barcha holatlarda, sessiyada saqlagan ma'lumotlaringiz seans tugaguncha yoki qo'lda yo'q qilinmaguncha, xuddi shu foydalanuvchi tomonidan keyingi so'rovlarda mavjud bo'ladi.
Laravelda funksiyadan foydalanish Global Session Helper
bu ramka tomonidan taqdim etilgan sessiya xizmatlariga kirishning qulay usuli. Bu sizning ilovangizdagi sessiya ma'lumotlarini saqlash va olish imkonini beradi. Bu erda qanday foydalanishga misol 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();
Bundan tashqari, oldingi qiymatni o'tkazishingiz mumkindefinite funksiyaning ikkinchi argumenti sifatida session
, agar belgilangan kalit seansda topilmasa, qaytariladi:
$value = session('key', 'default');
Session Request
Laravel'da sessiya so'rovi namunasi HTTP so'rovini ifodalovchi ob'ektga ishora qiladi va so'rov usuli (GET, POST, PUT va boshqalar), so'rovning URL manzili, so'rov sarlavhalari va so'rov tanasi kabi so'rov haqidagi ma'lumotlarni o'z ichiga oladi. . Shuningdek, u ushbu ma'lumotni olish va boshqarish uchun ishlatilishi mumkin bo'lgan turli usullarni o'z ichiga oladi.
Odatda siz nusxasiga kirasiz Session Request
o'zgaruvchi orqali $request
Laravel ilovasida. Masalan, seansga yordamchi funksiyadan foydalangan holda so'rov misoli orqali kirish mumkin 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');
}
}
Ushbu misolda o'zgaruvchi $request
bu sinfning namunasidir Illuminate\Http\Request
, bu joriy HTTP so'rovini ifodalaydi. Funktsiya session
so'rov namunasi sinfning namunasini qaytaradi Illuminate\Session\Store
, bu seans bilan ishlash uchun turli funktsiyalarni ta'minlaydi.
Ercole Palmeri
Kataniya poliklinikasida Apple Vision Pro tijorat ko‘rish vositasi yordamida oftalmoplastika operatsiyasi o‘tkazildi...
Rang berish orqali nozik vosita ko'nikmalarini rivojlantirish bolalarni yozish kabi murakkabroq ko'nikmalarga tayyorlaydi. Rang berish uchun…
Harbiy dengiz sektori 150 milliardlik bozorga yo'l olgan haqiqiy global iqtisodiy kuchdir...
O'tgan dushanba kuni Financial Times OpenAI bilan shartnoma imzolaganini e'lon qildi. FT o'zining jahon darajasidagi jurnalistikasini litsenziyalaydi...