为了账号安全,请及时绑定邮箱和手机立即绑定

错误:当我直接在控制器的构造函数中尝试基于闭包的中间件时,尝试获取非对象的属性“标头”。

错误:当我直接在控制器的构造函数中尝试基于闭包的中间件时,尝试获取非对象的属性“标头”。

PHP
Helenr 2022-09-03 17:29:03
在我的Laravel 5.2中。在构造函数中public function __construct(){         $this->data['user'] =  Auth::guard('customer')->user();            $this->middleware('customer');}因此,我可以在控制器中的任何位置使用“$this->data['user']”。但在Laravel 5.3或更高版本中,我们无法访问构造函数中经过身份验证的用户。当我尝试在构造函数中使用基于闭包的中间件时。public function __construct(){        $this->data['user'] =  Auth::guard('customer')->user();    $this->middleware('customer');}然后我收到错误:错误异常 尝试获取非对象 http://localhost/dhruv/intranet-v6.0/public/profile 的属性“标头”
查看完整描述

1 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

试试这个方式


public function __construct()

{

    $this->middleware('customer');

    $this->middleware(function ($request, $next) {

        $this->data['user'] = Auth::guard('customer')->user();


        return $next($request);

    });

}


查看完整回答
反对 回复 2022-09-03
  • 1 回答
  • 0 关注
  • 62 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信