Вы можете сделать это точно так, как вы показали, я только что проверил, и он работает, как ожидалось.
Прежде всего, зарегистрируйте свое промежуточное ПО в файле app\Http\Kernel.php
.
Затем в методе дескриптора промежуточного программного обеспечения вы можете получить значение bar
следующим образом:
$request->route('bar');
Я использовал это для тестирования:
Route::get('/foos/foo-{bar}-baz', function($bar) {
dd($bar);
})->middleware(['mym' => function($request, $handle) {
dd($request->route('bar'), 'Test within middleware');
}]);
Учитывая ваше промежуточное программное обеспечениеоба снова вернули мне значение, можете попробовать добавить полное пространство имен к маршруту:
->middleware(['web', \App\Http\Middleware\MyMiddleware::class]);