آنها یک راه آسان برای حفظ داده ها برای کاربر فعلی هستند. این آموزش اصول کار با جلسات در لاراول را در اختیار شما قرار می دهد.
در لاراول، یک جلسه راهی برای ذخیره اطلاعات، برای رسیدگی صحیح به درخواست های ارسال شده توسط کاربر است. هنگامی که کاربر یک برنامه لاراول را راه اندازی می کند، یک جلسه به طور خودکار برای آن کاربر شروع می شود. داده های جلسه در سرور ذخیره می شود و یک کوکی کوچک با یک شناسه منحصر به فرد برای شناسایی جلسه به مرورگر کاربر ارسال می شود.
می توانید از session برای ذخیره داده هایی که می خواهید در چندین صفحه یا درخواست استفاده کنید استفاده کنید. به عنوان مثال، ممکن است از جلسه برای احراز هویت کاربر استفاده کنید یا اطلاعات دیگری را که می خواهید در طول جلسه استفاده کنید در برنامه خود ذخیره کنید.
برای استفاده از جلسات در لاراول، ابتدا باید آنها را در فایل فعال کنید 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
. به عنوان مثال، برای استفاده از درایور جلسه پایگاه داده و ذخیره داده های جلسه در یک جدول جلسه، با DB نوع MySQL، می توانید متغیرهای محیطی زیر را تنظیم کنید:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
سه راه برای کار با داده های جلسه در لاراول وجود دارد:
helper
از 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
در لاراول، نمونه درخواست جلسه به یک شی اشاره می کند که یک درخواست HTTP را نشان می دهد و حاوی اطلاعاتی در مورد درخواست است، مانند روش درخواست (GET، POST، PUT و غیره)، URL درخواست، هدر درخواست و بدنه درخواست. . همچنین شامل روش های مختلفی است که می توان برای بازیابی و دستکاری این اطلاعات استفاده کرد.
به طور معمول شما به نمونه از Session Request
از طریق متغیر $request
در برنامه لاراول به عنوان مثال، یک جلسه می تواند از طریق یک نمونه درخواست با استفاده از تابع 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');
}
}
در این مثال، متغیر $request
این یک نمونه از کلاس است Illuminate\Http\Request
، که نشان دهنده درخواست فعلی HTTP است. کارکرد session
نمونه درخواست نمونه ای از کلاس را برمی گرداند Illuminate\Session\Store
، که عملکردهای مختلفی را برای کار با جلسه ارائه می دهد.
Ercole Palmeri
بخش دریایی یک قدرت واقعی اقتصادی جهانی است که به سمت یک بازار 150 میلیاردی حرکت کرده است.
دوشنبه گذشته، فایننشال تایمز از قراردادی با OpenAI خبر داد. FT مجوز روزنامه نگاری در سطح جهانی خود را صادر می کند…
میلیونها نفر برای خدمات استریم پرداخت میکنند و هزینه اشتراک ماهانه میپردازند. این عقیده رایج است که شما…
Coveware توسط Veeam به ارائه خدمات پاسخگویی به حوادث اخاذی سایبری ادامه خواهد داد. Coveware قابلیتهای پزشکی قانونی و اصلاحی را ارائه میدهد…