【发布时间】:2021-03-13 01:15:53
【问题描述】:
我在 Laravel 帮助类中使用了一个自定义方法:
public static function get_lang()
{
$title_tag = __( request()->path() . '.title_tag' );
if( ( request()->route()->getName() !== 'index' ) ) {
abort( 404 );
}
}
当从 Web 上的浏览器访问时,它运行良好,没问题。
但是,当使用此 Artisan 命令在 CLI 上运行时,出现错误:
php artisan route:list
这是我得到的错误:
Error
Call to a member function getName() on null
at app/Helpers/Helper.php:11
public static function get_lang()
{
$title_tag = __( request()->path() . '.title_tag' );
if( ( request()->route()->getName() !== 'index' ) ) {
abort( 404 );
}
}
如何添加检查以验证 getName() 不为 null 以防止出现此错误?
【问题讨论】:
-
"[...] 检查以验证
getName()不是null[...]" - 你错过了你的错误所说的内容;request()->route()是null,而不是getName()。null->getName()无效。永远不要假设一个方法的结果,总是通过下面的答案来检查,或者如果在 PHP8 上,request()?->route()?->getName()(`null-safe 运算符)。