رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش Session ها در لاراول 5
#1
در لاراول ۵ می توانیم از طریق کلاس Session و هم با استفاده از تابع کمکی session به مقادیر آنها دسترسی داشته باشیم.


ذخیره مقدار در یک سشن

در مثال زیر با هردو روش مقداری را در session ذخیره کرده ایم. key نام session و value مقدار آن است. برای تعریف چند session کلید و مقدار را داخل یک آرایه قرار دهید.

کد پی‌اچ‌پی:
Session::put('key''value');
 
session(['key' => 'value']); 


باید توجه داشته باشید که برای ست کردن یک session هم در تابع کمکی session باید آن را در آرایه قرار دهید.


افزودن مقدار به یک session آرایه ای


کد پی‌اچ‌پی:
Session::push('user.teams''developers'); 


بازیابی مقدار session با متد get امکانپذیر است.


کد پی‌اچ‌پی:
$value Session::get('key');
 
$value session('key'); 


در صورتی که session مقداری نداشت می توانیم برای آن یک مقدار پیش فرض تعریف کنیم


کد پی‌اچ‌پی:
$value Session::get('key''default');
 
$value Session::get('key', function() { return 'default'; }); 


گرفتن مقدار یک session و بلافاصله حذف آن با متد pull امکانپذیر است :


کد پی‌اچ‌پی:
$value Session::pull('key''default'); 


با متد all می توانیم به تمام مقادیر سشن ها را در یک آرایه بازیابی کنیم.


کد پی‌اچ‌پی:
$data Session::all(); 


برای حذف یک session خاص از متد forget که نام سشن را به آن می دهیم استفاده می کنیم. برای حذف تمامی session ها از flush استفاده میکنیم.


کد پی‌اچ‌پی:
Session::forget('key');
 
Session::flush(); 


برای امنیت بیشتر سشن ها می توانید از متد regenerate برای تولید دوباره session id استفاده کنید :


کد پی‌اچ‌پی:
Session::regenerate(); 


داده های فلش

سشن ها بعد از تولید تا وقتی که مرورگر بسته نشود از بین نمی روند. در لاراول session هایی به نام فلش وجود دارند که فقط برای یک درخواست معتبر هستند و بلافاصله در درخواست بعدی از بین میروند که مناسب برای ایجاد پیغام های خطا می باشند. مانند مثال زیر آنها را تولید می کنیم و به مانند سشن های دیگر بازیابی میکنیم.


کد پی‌اچ‌پی:
Session::flash('key''value'); 


ذخیره سشن ها در دیتابیس

session ها به طور پیش فرض در فایل ذخیره می شوند. شما می توانید آنها در چند جای مختلف از جمله دیتابیس ذخیره کنید که هرکدام در کاربردهای خاصی استفاده می شوند.
در صورتی که میخواهید سشن ها را در دیتابیس ذخیره کنید کافی است این سه دستور را به ترتیب در ترمنال تایپ و اجرا کنید :


کد پی‌اچ‌پی:
php artisan session:table
 
composer dump
-autoload
 
php artisan migrate 


سپس در فایل env. مقدار SESSION_DRIVER را به database تغییر دهید. 


برای اطلاعات بیشتر به اینجا مراجعه کنید

(با تشکر از حامد آریان)
قوانین انجمن لاراولیستا  | شماره تماس :‌09124783045 |‌ تلگرام :‌ 09377869283 |‌ مدیریت کانال تلگرام
پاسخ
#2
سلام
در کار با سیشن های لاراول یک مشکل خوردم، ممنون میشم راهنمایی کنید.

وقتی در کنترلر یک تابع مانند زیر می نویسم سیشن به خوبی ست میشه.
کد پی‌اچ‌پی:
           session::put('sample',34);
 
        


حالا اگر در یک این خط رو حذف کنیم و صفحه رو مثلا رفرش کنیم مقدار از سیشن حذف میشه، یعنی در عمل سیشن فقط برای یک صفحه کار می کنه!
از دستور هم استفاده کردم اما متاسفانه فایده ای نداشت.
پاسخ
 


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  صفحه بندی در لاراول ۵.۵ sadaf 0 47 10-26-2017, 09:26 PM
آخرین ارسال: sadaf
  سرور برای لاراول mahmood_20050 0 32 10-24-2017, 10:00 AM
آخرین ارسال: mahmood_20050
  گرفتن آپدیت های وب هوک تلگرام در لاراول Mr.AMiR 6 252 09-19-2017, 04:30 AM
آخرین ارسال: Bvk.Programmer
  خطای نصب لاراول dmbehrouz 0 45 09-07-2017, 01:11 PM
آخرین ارسال: dmbehrouz
  مشکل افت سرعت وقتی از لاراول به جای php استفاده می کنم Zahir 1 109 08-31-2017, 08:40 AM
آخرین ارسال: imanghafoori
  آموزش اعتبار سنجی در لاراول 5 alihossein 5 1,297 07-30-2017, 08:47 AM
آخرین ارسال: shima71
  آموزش فارسی لاراول ۵ alihossein 7 3,838 07-28-2017, 06:44 PM
آخرین ارسال: shima71
  انتقال سایت mvc به لاراول miladhassan 1 94 07-26-2017, 09:01 AM
آخرین ارسال: fery
Question راه اندازی لاراول روی سیستم افلاین؟ fery 0 63 07-26-2017, 08:55 AM
آخرین ارسال: fery
Sad مشکل در ایجاد وبلاگ در لاراول 5.4 itroz 0 100 07-05-2017, 05:03 PM
آخرین ارسال: itroz

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

درباره انجمن فریم ورک لاراول

انجمن لاراولیستا به عشق توسعه دهنده ها و علاقمندان به این فریم ورک محبوب ایجاد شده و امیدواریم با نظرات خوبتون ما رو در بهبود کار یاری کنید. در ضمن خیلی هم خوشحال میشیم شما هم در توسعه این انجمن سهمی داشته باشید.