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

在我的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 的属性“标头”


Helenr
浏览 65回答 1
1回答

回首忆惘然

试试这个方式public function __construct(){    $this->middleware('customer');    $this->middleware(function ($request, $next) {        $this->data['user'] = Auth::guard('customer')->user();        return $next($request);    });}
打开App,查看更多内容
随时随地看视频慕课网APP