控制器构造函数Laravel 5.5

时间:2017-09-23 10:01:19

标签: laravel-5 constructor controller request middleware

我真的很绝望。 我将一个laravel项目从5.2迁移到5.5,这一切都完美无缺。但是我在控制器构造函数中使用Request对象时遇到了问题。如果我使用Request对象,控制器似乎会跳过中间件。 我试图使用$ this->中间件(' api');但没有工作。

public function __construct(Request $req) {
    $this->commerce = new Commerce($req->user->currency()->currency);
}

我的' api'中间件在请求中推送用户对象。 在构造方法中,$ req-> user为null!

api路由设置正确,其他控制器正常工作!

我忘记了什么?

1 个答案:

答案 0 :(得分:0)

您可以在$this->middleware()方法的回调函数中使用控制器中的Request对象。试试这个:

public function __construct(){
  $this->middleware(function($req, $next){
    $this->commerce = new Commerce($req->user->currency()->currency);

    return $next($request);
  });
}