У меня есть этот маршрут

Route::get('/books/science', 'BookController@science')->name('scientific');

Когда я хотел проверить это условие (согласно документу: Проверка текущего маршрута )

public function handle($request, Closure $next)
{
    if ($request->route()->named('scientific')) {
        //
    }

    return $next($request);
}

Я получил эту ошибку. Также когда добавляю "Маршрут"

use Illuminate\Support\Facades\Route;

И сбросить эти коды

dd(Route::currentRouteName());
dd(\Request::route());

Я получаю ноль

0
mitra razmara 3 Дек 2018 в 19:20

1 ответ

Лучший ответ

$request->route() вернет null в Global Middlewares .

Добавьте свое промежуточное ПО в другую группу как

protected $middlewareGroups = [
    'web' => [
         ...
         YOUR_MIDDLEWARE::class,
    ]
]

Или добавьте его в $routeMiddleware.

protected $routeMiddleware = [
    ...
    'your_middleware' => YOUR_MIDDLEWARE::class,
];

И примените его к своему маршруту,

Route::middleware('your_middleware')->group(function () {
    Route::get('/books/science', 'BookController@science')->name('scientific');
});
1
Ijas Ameenudeen 3 Дек 2018 в 19:33