我尝试使用以下方法从会话中删除值:
Session::forget('value')
但它没有删除!
然而,当我尝试使用save
这样的方法时:
Session::forget('value')
Session::save()
它工作了! (即,该值已从会话中删除。)
请 - 我做错了什么?使用save
和Session::flush()
时,我在Laravel文档中看不到Session::forget()
方法。
答案 0 :(得分:8)
save()方法将动态执行对文件的写入。
在您向所有请求输出内容之前,您的应用程序似乎没有调用Session :: save()。
如果没有调用此方法,会话文件将不会使用新值进行更新,并且在下次访问时它们仍然存在。
如果您希望确保删除或添加内容并且更改仍然存在,则始终调用Session :: save()非常重要。
答案 1 :(得分:2)
完全缓存清除(使用命令行或代码):
php artisan cache:clear
Artisan::call('cache:clear');
+完整会话刷新:
Session::flush();
通过此方法,您可以清除所有会话数据。
答案 2 :(得分:0)
我使用Session::save()
方法可以很好地保存会话数据。但是当我使用Session::flush()
刷新会话时,它不会清除存储在Laravel会话中的所有数据。 Session::forget('value')
可以很好地清除会话特定值。