【问题标题】:How to delete session in Laravel 5.3 without using Request?如何在不使用请求的情况下删除 Laravel 5.3 中的会话?
【发布时间】: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 中应该怎么做?

【问题讨论】:

    标签: php laravel session laravel-5 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-> 是必要的。
      猜你喜欢
      • 2017-01-14
      • 1970-01-01
      • 2019-02-02
      • 2017-04-04
      • 2020-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-24
      相关资源
      最近更新 更多