首页 > 解决方案 > 在 laravel 5.7 中调用 null 上的成员函数 named()

问题描述

我有这条路线

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

当我想检查这种情况时(根据文件:Inspecting The Current Route

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());

我得到空

标签: laravel-5routes

解决方案


$request->route()将在Global Middlewares中返回 null 。

将您的中间件添加到不同的组中

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');
});

推荐阅读