У меня есть промежуточное ПО, которое отлично работает, если оно определено как глобальное промежуточное ПО в 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
. Кроме того, преднамеренное указание неправильного имени промежуточного программного обеспечения в route.php не вызывает никаких ошибок.
РЕДАКТИРОВАТЬ: Ведение журнала показывает, что промежуточное ПО выполняется для всех маршрутов ресурсов GET, но не для POST/PUT/DELETE.