【问题标题】:Request in controller constructor Laravel 5.5控制器构造函数 Laravel 5.5 中的请求
【发布时间】:2017-09-23 10:01:18
【问题描述】:

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

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

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

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

我忘记了什么?

【问题讨论】:

    标签: laravel-5 constructor controller request middleware


    【解决方案1】:

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

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

    【讨论】:

    • 我尝试了相同的方法,但中间件代码...不起作用!
    • 你的return $next($request)不应该是return $next($req)吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    相关资源
    最近更新 更多