【发布时间】:2017-05-23 03:31:13
【问题描述】:
正如 Laravel 5.3 的文档中提到的,我正在尝试在控制器的构造函数中添加中间件回调
控制器还允许您使用闭包注册中间件。 这提供了一种方便的方法来为单个定义中间件 没有定义整个中间件类的控制器:
$this->middleware(function ($request, $next) {
// ...
return $next($request);
});
不幸的是,我收到了错误:
非法偏移类型
这是合乎逻辑的,因为 Illuminate\Routing\Controller 类的中间件方法只接受第一个参数作为数组,我不困惑他们为什么要将此代码示例添加到文档中,尽管它不起作用,或者我我做错了什么或遗漏了什么?
【问题讨论】:
-
您可以添加自己的代码或更多代码吗?
-
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