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();
}
我正在使用 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();
}