如何在不使用请求的情况下删除 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 中的会话?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不隐藏内容的情况下删除双倍 y 滚动?

如何在不实例化整个 Laravel 的情况下加载 Laravel 模型?

如何在不停止 laravel 程序的情况下使用 dd()

如何在不安装完整框架的情况下测试自定义 Laravel 控制台命令?

如何在不重写的情况下从数据框中删除行?

如何在不删除最新提交的情况下恢复到上一个​​提交?