Home » Php » php – laravel's Session flush and forget methods not working as expected

php – laravel's Session flush and forget methods not working as expected

Posted by: admin July 12, 2020 Leave a comment

Questions:

I tried to delete a value from my session using :

Session::forget('value')

but it didn’t delete!

However, when i tried using save method like so :

 Session::forget('value')
 Session::save()

it worked! (I.e. the value was deleted from the session.)

Please – what am I doing wrong? I don’t see the save method in the Laravel documentation when using Session::flush() and Session::forget().

How to&Answers:

The save() method will actaully perform the write to the file.

It seems that your application doesn’t call Session::save() before it outputs content to the user on all requests.

If this method isn’t called, the Session file will not get updated with the new values, and they will still be there on the next visit.

It’s important to always call Session::save() if you wish to be sure stuff got removed or added and the change persists.

Answer:

Full cache clear (either using command-line or code):

php artisan cache:clear
Artisan::call('cache:clear');

+ Full session flush:

Session::flush();

through this method you can clear all of your session data.

Answer:

i use Session::save() method its work fine to save session data. But when i flush session using Session::flush() it does not clear all the data that is stored in Laravel session. Session::forget('value') works fine to clear session specific value.