【问题标题】:Laravel 5.3 middleware callback function in controller constructorLaravel 5.3 控制器构造函数中的中间件回调函数
【发布时间】:2017-05-23 03:31:13
【问题描述】:

正如 Laravel 5.3 的文档中提到的,我正在尝试在控制器的构造函数中添加中间件回调

控制器还允许您使用闭包注册中间件。 这提供了一种方便的方法来为单个定义中间件 没有定义整个中间件类的控制器:

$this->middleware(function ($request, $next) {
    // ...
    return $next($request);
});

不幸的是,我收到了错误:

非法偏移类型

这是合乎逻辑的,因为 Illuminate\Routing\Controller 类的中间件方法只接受第一个参数作为数组,我不困惑他们为什么要将此代码示例添加到文档中,尽管它不起作用,或者我我做错了什么或遗漏了什么?

documentation page

【问题讨论】:

  • 您可以添加自己的代码或更多代码吗?
  • Illuminate\Routing\Controller@middleware 接受$middleware(可以是array|string|\Closure)作为它的第一个参数。你确定至少使用 Laravel 5.3.4 吗?您可以通过运行php artisan --version 来检查这一点。
  • 我一直以为我使用的是最新版本的 laravel,我刚刚检查了 composer.json 文件,你是对的,它需要 "laravel/framework": "5.3" 只有我添加了非常重要的.* 最后运行 composer update 效果很好.. 非常感谢

标签: php laravel callback laravel-5.3 middleware


【解决方案1】:

laravel 版本至少应该是:

5.3.4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 2019-01-02
    • 2023-04-09
    相关资源
    最近更新 更多