Php Laravel Route::current()返回null

Php Laravel Route::current()返回null,php,laravel,laravel-5.7,Php,Laravel,Laravel 5.7,我正在尝试使用以下代码行在Laravel 5.7的中间件中使用当前路由: $route = Route::current(); 但是我得到了$route的空值。有什么想法吗?因为路由器还没有被调用,所以路由还不可用。这取决于中间件之前调用的中间件 我认为,在before中间件中,您可以尝试使用:$route=$request->path()只是为了确保,而不是取决于正在启动或未启动的路由器。如果需要访问路由外观,您只需要更改中间件在app/Http/Kernel.php中的注册位置 我打赌您的

我正在尝试使用以下代码行在Laravel 5.7的中间件中使用当前路由:

$route = Route::current();

但是我得到了
$route
的空值。有什么想法吗?

因为路由器还没有被调用,所以路由还不可用。这取决于中间件之前调用的中间件


我认为,在before中间件中,您可以尝试使用:
$route=$request->path()
只是为了确保,而不是取决于正在启动或未启动的路由器。

如果需要访问路由外观,您只需要更改中间件在
app/Http/Kernel.php中的注册位置

我打赌您的中间件在
受保护的$middleware
阵列中。它应该位于您的
$middlewareGroup
中,通常是
web
api
。或者,如果特定路由需要它,可以将其添加到
$routemidware
数组中

例如,我想从我的
HandleInertiaRequests
中间件中访问
Route
,因此我必须移动到
$middlewareGroups
,如此屏幕截图所示:


但在中间件的方法中,您将获得请求和下一个关闭…@ka_lin好的,那么,我该怎么做?我对Middleware有点陌生。问题是,在我从Laravel5.1迁移到5.7之前,它就已经工作了。什么可能改变了?可能改变了点,在中间产品链中,路由器是自举的。