Laravel 使用 route:list 时无法识别 getPath()

Laravel getPath() not recognized when using route:list

我正在使用 Laravel 5 并注意到每当我通过 cmd 执行 php artisan route:list 命令时会发生一些奇怪的事情。

它给我一个错误: [Symfony\Component\Debug\Exception\FatalErrorException] Call to a member function getPath() on a non-object

它引用的代码是这样的: Route::getCurrentRoute()->getPath()

但是当我转储该代码时,没有抛出任何错误并且它正确显示了当前路线。

当 运行 和 php artisan serve 时也没有问题。使用 php artisan route:list 命令时会发生错误。同样适用于 Route::getCurrentRoute()->getUri()

有人知道这里发生了什么吗? 非常感谢!

发生错误是因为当您在控制台中时,Route::getCurrentRoute() return 是一个 null 值。如果您在浏览器中,它将 return 当前路线。一种解决方案是在检索其某些属性之前检查当前路由是否不为空:

$currentRoute = Route::getCurrentRoute();

if ($currentRoute) 
{
    $path = $currentRoute->>getPath();
}