Sessionها در لاراول – Laravel Session
دسته بندی : لاراول سطح مقاله : متوسط زمان مطالعه : 5 دقیقه آخرین بروز رسانی: 19 مرداد 1399Sessionها برای ذخیره اطلاعات کاربر در سراسر درخواست ها استفاده می شود. Laravel درایورهای مختلفی مانند فایل ، کوکی ، APC ، آرایه ، Memcached ، Redis و پایگاه داده را برای رسیدگی به Sessionها فراهم می کند. به طور پیش فرض ، درایور پرونده به دلیل سبک بودن استفاده می شود. Sessionها در لاراول را می توان در پرونده ذخیره شده در config/session.php پیکربندی کرد.
دسترسی به Sessionها در لاراول
برای دسترسی به Sessionها، به نمونه ای از Session نیاز داریم که از طریق درخواست HTTP قابل دسترسی است. پس از دریافت نمونه می توانیم از متد get () استفاده کنیم که یک آرگومان “key” را برای بدست آوردن Sessionها استفاده می کند.
$value = $request->session()->get('key');
برای به دست آوردن کلیه داده های جلسه به جای get() می توانید از all() روش استفاده کنید.
ذخیره Sessionها
داده ها را می توان در جلسه با استفاده از روش put () ذخیره کرد. روش put () دو آرگومان ، “key ” و “value ” را خواهد گرفت.
$request->session()->put('key', 'value');
حذف Sessionها
از روش forget() برای حذف یک مورد از Session استفاده می شود. این روش به عنوان استدلال “key” را در نظر می گیرد.
$request->session()->forget('key');
برای حذف کلیه داده های جلسه ، از روش flush() به جای forget() استفاده کنید. برای بازیابی Session از روش pull() استفاده کرده و پس از آن حذف کنید. روش pull() کلید به عنوان آرگومان نیز خواهد بود. تفاوت روش forget() و pull() در این است که روش forget() مقدار Session را برنمی گرداند و روش pull() آن را برمی گرداند و آن مقدار را از Session حذف می کند.
مثال
با اجرای دستور زیر ، یک کنترلر به نام SessionController ایجاد کنید.
php artisan make:controller SessionController --plain
پس از اجرای موفقیت آمیز ، خروجی زیر را دریافت خواهید کرد.
کدهای زیر را در فایل وارد کنید:
app/Http/Controllers/SessionController.php
app/Http/Controllers/SessionController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class SessionController extends Controller {
public function accessSessionData(Request $request) {
if($request->session()->has('my_name'))
echo $request->session()->get('my_name');
else
echo 'No data in the session';
}
public function storeSessionData(Request $request) {
$request->session()->put('my_name','Virat Gandhi');
echo "Data has been added to session";
}
public function deleteSessionData(Request $request) {
$request->session()->forget('my_name');
echo "Data has been removed from session.";
}
}
خطوط زیر را در پرونده app/Http/routes.php اضافه کنید.
Route::get('session/get','SessionController@accessSessionData');
Route::get('session/set','SessionController@storeSessionData');
Route::get('session/remove','SessionController@deleteSessionData');
برای تنظیم داده ها در جلسه ، به URL زیر مراجعه کنید.
http://localhost:8000/session/set
خروجی همانطور که در تصویر زیر نشان داده می شود ظاهر می شود.
برای به دست آوردن داده ها از جلسه به آدرس زیر مراجعه کنید.
http://localhost:8000/session/get
خروجی همانطور که در تصویر زیر نشان داده می شود ظاهر می شود.
برای حذف داده های جلسه به آدرس زیر مراجعه کنید.
http://localhost:8000/session/remove
منبع : tutorialspoint
Sessionها در لاراول و تمام زبان ها و فریمورک های دیگر کاربرد بسیار زیاد و جذابی دارند و شما می توانید به سادگی از این امر استفاده کنید. مقالات رایگان لاراول را در دویکس مشاهده کنید.
این مقاله چقدر براتون مفید بود؟