【问题标题】:How to use session in custom facade in Laravel 5.5如何在 Laravel 5.5 的自定义外观中使用会话
【发布时间】:2017-11-29 03:05:26
【问题描述】:

我是 Laravel 的新手,正在开发 5.5 版。据我所知,我已经创建了自定义外观,现在我正在尝试将一些会话值设置到这个外观中,并尝试获取设置会话的值。

但是 Laravel 无法在这个自定义外观中设置会话。如果我在控制器中做同样的事情,那么它工作正常。

以下是我尝试过的可能方式:

public function setUserSession() {  
   //Ist way
   session()->put('user', 'some values');
   var_dump(session()->has('user')); // this is returning me false  

   //2nd way  
   request()->session()->put('user', 'some values');  
   var_dump(request()->session()->has('user')); // this is returning me false 

   Session::set('user', 'some values');  //this is giving me error
   /* for above line I have include below namespace:  
      1.Illuminate\Support\Facades\Session  
   */  
   var_dump(Session::get('user')); // this is returning me false 
}  

即使我尝试过以下链接的解决方案:

How to use session in custom class laravel 5?

但没有任何改变。请任何人分享您对此问题的解决方案?

提前致谢。

【问题讨论】:

    标签: php session laravel-5 laravel-5.5


    【解决方案1】:

    自定义外观与会话无关。确保调用 setUserSession() 的地方在应用web 中间件的路由中,因为web 中间件启动会话服务

    【讨论】:

    • 是的,我从控制器调用这个函数。我的控制器路由有网络中间件和自定义中间件。还有一件事,我在 Laravel5.4 中尝试的同样的事情,它工作正常。即会话是在 5.4 中创建的
    • 您的会话驱动程序是什么,问题可能发生在缓存系统中。顺便说一句, Session::set('user', 'some values') 总是返回错误,因为那里没有 set 方法
    猜你喜欢
    • 2014-11-16
    • 2020-02-11
    • 2018-09-15
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 2018-09-12
    • 2016-12-21
    相关资源
    最近更新 更多