Laravel 5 在laravel 5.7中对null调用名为()的成员函数

Laravel 5 在laravel 5.7中对null调用名为()的成员函数,laravel-5,routes,Laravel 5,Routes,我有这条路线 Route::get('/books/science', 'BookController@science')->name('scientific'); 当我想根据文件检查此条件时: 我犯了这个错误。当我添加路线时也是如此 use Illuminate\Support\Facades\Route; 然后扔掉这些代码 dd(Route::currentRouteName()); dd(\Request::route()); 我得到空值$request->route将在全局中

我有这条路线

Route::get('/books/science', 'BookController@science')->name('scientific');
当我想根据文件检查此条件时:

我犯了这个错误。当我添加路线时也是如此

use Illuminate\Support\Facades\Route;
然后扔掉这些代码

dd(Route::currentRouteName());
dd(\Request::route());
我得到空值

$request->route将在全局中间件中返回空值

将中间件添加到其他组中,如下所示:

protected $middlewareGroups = [
    'web' => [
         ...
         YOUR_MIDDLEWARE::class,
    ]
]
或者将其添加到$RouteMiddle软件中

并将其应用于您的路线

Route::middleware('your_middleware')->group(function () {
    Route::get('/books/science', 'BookController@science')->name('scientific');
});

handle方法在哪里?如何调用它?文档中的示例特定于中间件。是。它位于中间件中,中间件在kernel.php的受保护$Middleware中注册
protected $routeMiddleware = [
    ...
    'your_middleware' => YOUR_MIDDLEWARE::class,
];
Route::middleware('your_middleware')->group(function () {
    Route::get('/books/science', 'BookController@science')->name('scientific');
});