检测到Laravel中间件但未执行

时间:2016-04-10 15:29:18

标签: laravel middleware laravel-middleware

我有一个中间件在Kernel.php中定义为全局中间件时工作正常。但是,我希望它只适用于特定的路由,所以我这样做:

Route::group(['prefix' => 'myapi/', 'middleware' => 'api'], function(){

});

调用php artisan route:list表示正确检测到中间件。但是,它没有被执行(我知道这是因为即使故意在文件中放置错误也没有做任何事情)。

...
protected $middlewareGroups = [
    ...
    'api' => [
        'throttle:60,1',
        \App\Http\Middleware\CORSMiddleware::class,
    ],
];

当中间件设置为全局时,它不会被route:list列出。另外,在routes.php中故意指定错误的中间件名称不会引发任何错误。

编辑: 记录显示中间件是针对所有GET资源路由执行的,但不是针对POST / PUT / DELETE执行的。

1 个答案:

答案 0 :(得分:0)

我认为将中间件添加到组中时必须将中间件放在数组中 - 这将导致它触发并为您提供预期的结果:

Route::group(['prefix' => 'myapi/', 'middleware' => ['api']], function(){

});