Sessionها-در-لاراول

Sessionها در لاراول – Laravel Session

دسته بندی : لاراول سطح مقاله : متوسط زمان مطالعه : 5 دقیقه آخرین بروز رسانی: 19 مرداد 1399

Sessionها برای ذخیره اطلاعات کاربر در سراسر درخواست ها استفاده می شود. 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

پس از اجرای موفقیت آمیز ، خروجی زیر را دریافت خواهید کرد.

sessioncontroller

کدهای زیر را در فایل وارد کنید:

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

خروجی همانطور که در تصویر زیر نشان داده می شود ظاهر می شود.

data_in_session

برای به دست آوردن داده ها از جلسه به آدرس زیر مراجعه کنید.

http://localhost:8000/session/get

خروجی همانطور که در تصویر زیر نشان داده می شود ظاهر می شود.

virat_gandhi

برای حذف داده های جلسه به آدرس زیر مراجعه کنید.

http://localhost:8000/session/remove

منبع : tutorialspoint

Sessionها در لاراول و تمام زبان ها و فریمورک های دیگر کاربرد بسیار زیاد و جذابی دارند و شما می توانید به سادگی از این امر استفاده کنید. مقالات رایگان لاراول را در دویکس مشاهده کنید.

این مقاله چقدر براتون مفید بود؟

میانگین رتبه : 4/5 - تعداد رای : 1