رتبه موضوع:
  • 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);
 
        


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


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش اعتبار سنجی در لاراول 5 alihossein 4 774 11-20-2016, 07:12 AM
آخرین ارسال: حمید رﺽا کمالی
  آموزش روتینگ routing در لاراول 5 alihossein 2 1,129 11-12-2016, 04:37 AM
آخرین ارسال: حمید رﺽا کمالی
  آموزش کار با دیتابیس در لاراول 5 alihossein 6 1,556 10-27-2016, 01:01 PM
آخرین ارسال: sempaisaleh
  آموزش Migration در لاراول 5 alihossein 9 1,167 08-15-2016, 04:17 PM
آخرین ارسال: Naser.SherafatiNia
  آموزش فارسی لاراول ۵ alihossein 4 2,865 07-22-2016, 04:16 PM
آخرین ارسال: elham_malekmohamadi
  session saharMeskin 1 69 05-26-2016, 07:05 AM
آخرین ارسال: hamo
  # سوال : آموزش ساخت ربات تلگرام با پکیج irazasyed/telegram-bot-sdk Bvk.Programmer 0 235 04-25-2016, 04:54 PM
آخرین ارسال: Bvk.Programmer
  درخواست آموزش کار با پکیج intervention/image Bvk.Programmer 6 492 04-18-2016, 05:52 PM
آخرین ارسال: hamo
  دریافت session در AppServiceProvider hamidnick 0 62 03-21-2016, 12:54 PM
آخرین ارسال: hamidnick
Rainbow آموزش : پکیچ کاربردی ajax-blade Bvk.Programmer 0 201 02-15-2016, 06:04 PM
آخرین ارسال: Bvk.Programmer

پرش به انجمن:


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

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

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