فهرست:
از Session ها برای ذخیره اطلاعات مختلف کاربر و انتقال آن ها بین درخواست های مختلف استفاده می شود. در لاراول مدیریت اصلی Session ها در فایل config/session.php
انجام می شود.
دسترسی به داده های Session ها در لاراول
برای دسترسی به مقدار جلسه، ما به یک instance از جلسه نیاز داریم که از طریق درخواست HTTP بصورت زیر در دسترسی است، برای این منظور می توانیم از متد get
استفاده کنیم در این متد یک آرگومان برای دریافت مقدار Session مورد نظر دریافت می شود.
[pastacode lang=”php” manual=”%24value%20%3D%20%24request-%3Esession()-%3Eget(‘key’)%3B%0A” message=”” highlight=”” provider=”manual”/]
شما می توانید به جای متد get
از متد all
برای بدست آوردن تمام داده های Session استفاده کنید.
ذخیره داده های Session ها در لاراول
داده ها را می توان در Session با استفاده از متد put
ذخیره کرد. متد put
دو آرگومان key و value دارد و بصورت زیر استفاده می شود.
[pastacode lang=”php” manual=”%24request-%3Esession()-%3Eput(‘key’%2C%20’value’)%3B” message=”” highlight=”” provider=”manual”/]
حذف داده های Session در لاراول
برای این منظور از متد forget
برای حذف یک Session استفاده می شود. این متد “key” را به عنوان آرگومان دریافت می کند.
[pastacode lang=”php” manual=”%24request-%3Esession()-%3Eforget(‘key’)%3B%0A” message=”” highlight=”” provider=”manual”/]
در لاراول شما می توانید برای پاک کردن تمام داده های جلسه از متد flush
به جای متد forgot
استفاده کنید. همچنین بکار گیری متد pull
به شما کمک میکند بعد از دریافت مقدار Session مورد نظر آن Session حذف شود، این متد نیز یک kay را به عنوان آرگومان ورودی دریافت می کند. در واقع تفاوت متد forgot
و متد pull
در این است که متد forgot
مقدار جلسه را بر نمی گرداند و مستقیما آن را حذف می کند ولی متد pull
ابتدا مقدار Session مورد نظر را برگردانده و سپس آن Session را حذف می کند. برای بررسی بهتر توضیحات ارایه شده به ذکر یک مثال می پردازیم برای این منظور ابتدا با خط فرمان زیر کنترلر SessionController
را ایجاد می کنیم.
[pastacode lang=”markup” manual=”php%20artisan%20make%3Acontroller%20SessionController%20–plain%0A” message=”” highlight=”” provider=”manual”/]
بعد از اجرای خط فرمان بالا فایل SessionController.php
ایجاد می شود، آن را بصورت زیر تغییر دهید.
[pastacode lang=”php” manual=”%3C%3Fphp%0A%0Anamespace%20App%5CHttp%5CControllers%3B%0A%0Ause%20Illuminate%5CHttp%5CRequest%3B%0Ause%20App%5CHttp%5CRequests%3B%0Ause%20App%5CHttp%5CControllers%5CController%3B%0A%0Aclass%20SessionController%20extends%20Controller%20%7B%0A%20%20%20public%20function%20accessSessionData(Request%20%24request)%20%7B%0A%20%20%20%20%20%20if(%24request-%3Esession()-%3Ehas(‘my_name’))%0A%20%20%20%20%20%20%20%20%20echo%20%24request-%3Esession()-%3Eget(‘my_name’)%3B%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20echo%20’No%20data%20in%20the%20session’%3B%0A%20%20%20%7D%0A%20%20%20public%20function%20storeSessionData(Request%20%24request)%20%7B%0A%20%20%20%20%20%20%24request-%3Esession()-%3Eput(‘my_name’%2C’uclass.ir%20website’)%3B%0A%20%20%20%20%20%20echo%20%22Data%20has%20been%20added%20to%20session%22%3B%0A%20%20%20%7D%0A%20%20%20public%20function%20deleteSessionData(Request%20%24request)%20%7B%0A%20%20%20%20%20%20%24request-%3Esession()-%3Eforget(‘my_name’)%3B%0A%20%20%20%20%20%20echo%20%22Data%20has%20been%20removed%20from%20session.%22%3B%0A%20%20%20%7D%0A%7D” message=”app/Http/Controllers/SessionController.php” highlight=”” provider=”manual”/]
حال محتویات فایل روت را بصورت زیر ویرایش کنید.
[pastacode lang=”php” manual=”Route%3A%3Aget(‘session%2Fget’%2C’SessionController%40accessSessionData’)%3B%0ARoute%3A%3Aget(‘session%2Fset’%2C’SessionController%40storeSessionData’)%3B%0ARoute%3A%3Aget(‘session%2Fremove’%2C’SessionController%40deleteSessionData’)%3B” message=”app/Http/routes.php” highlight=”” provider=”manual”/]
برای مقدار دهی به Session مورد نظر از آدرس زیر استفاده کنید.
[pastacode lang=”markup” manual=”http%3A%2F%2Flocalhost%3A8000%2Fsession%2Fset” message=”” highlight=”” provider=”manual”/]
خروجی آدرس بالا باید بصورت زیر باشد.
[pastacode lang=”markup” manual=”Data%20has%20been%20added%20to%20session” message=”” highlight=”” provider=”manual”/]
برای دریافت مقدار Session مورد نظر از آدرس زیر استفاده کنید.
[pastacode lang=”markup” manual=”http%3A%2F%2Flocalhost%3A8000%2Fsession%2Fget%0A” message=”” highlight=”” provider=”manual”/]
خروجی آدرس بالا باید بصورت زیر باشد.
[pastacode lang=”markup” manual=”uclass.ir%20website” message=”” highlight=”” provider=”manual”/]
برای حذف مقدار Session مورد نظر از آدرس زیر استفاده کنید.
[pastacode lang=”markup” manual=”http%3A%2F%2Flocalhost%3A8000%2Fsession%2Fremove” message=”” highlight=”” provider=”manual”/]
خروجی آدرس بالا باید بصورت زیر باشد.
[pastacode lang=”markup” manual=”Data%20has%20been%20removed%20from%20session.” message=”” highlight=”” provider=”manual”/]