У меня есть промежуточное программное обеспечение, которое отлично работает при определении глобального промежуточного программного обеспечения в Kernel.php. Тем не менее, я хочу, чтобы применяться только к конкретным маршрутам, так что я это сделать:Средство обнаружения Laravel обнаружено, но не выполнено
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 не вызывает никакой ошибки.
EDIT: Ведение журнала показывает, что промежуточное программное обеспечение выполняется для всех маршрутов GET, но не для POST/PUT/DELETE.
Оба Синтаксисы позволены, в противном случае ремесленник не будет список промежуточное ПО в «route: list». Но все же даже с этим синтаксисом это не работает :( – user5365075