如何在不使用请求的情况下删除 Laravel 5.3 中的会话?
Posted
技术标签:
【中文标题】如何在不使用请求的情况下删除 Laravel 5.3 中的会话?【英文标题】:How to delete session in Laravel 5.3 without using Request? 【发布时间】:2017-06-11 15:40:55 【问题描述】:我在需要处理会话的控制器中有一个方法。该方法由不需要任何用户输入的 get 方法调用,因此我想在没有 Request
类的情况下执行此操作。
目前,我可以设置会话,但找不到删除它的方法。它看起来像这样:
if ($boolean_storing_condition_value)
session(['some_data'=>'Some Data']);
else
/* What should be the unset function? */
在 Laravel 4.2 中,使用 Session::forget('some_data');
或 Session::flush()
完成。在 Laravel 5.3 中应该怎么做?
【问题讨论】:
【参考方案1】:在此之后添加session()->save();
。
【讨论】:
谢谢!这对我来说是缺失的部分!我正在使用 Laravel 5.7.26【参考方案2】:在 Laravel 5.6 中删除会话变量
session()->forget(['key1']);
删除会话变量(从会话中删除更多的一个值)使用参数作为参数 session()->forget([' ']);
session()->forget(['key1','key1','key3','...']);
【讨论】:
请详细解释您的代码,以便其他用户了解其功能。谢谢!【参考方案3】:在 Laravel 5.3 中你仍然可以使用 flush()
和 forget()
方法:
session()->flush();
session()->forget('key');
https://laravel.com/docs/5.3/session#deleting-data
【讨论】:
【参考方案4】:您可以使用the session helper,而无需使用请求对象。
session()->forget('some_data');
session()->flush();
【讨论】:
它可以工作,但是太糟糕了,它没有说刷新和忘记也包含在辅助函数中。我认为开头$request->
是必要的。以上是关于如何在不使用请求的情况下删除 Laravel 5.3 中的会话?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不实例化整个 Laravel 的情况下加载 Laravel 模型?