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 に対しては実行されていません。