You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行php artisan serve时Laravel项目报Undefined property错误如何解决

问题原因
  • 你原本的写法是Laravel 5.x早期版本或者Lumen框架的兼容写法,新版Laravel的Illuminate\Routing\Router类已经移除了公开的$app属性,所以会报Undefined property: Illuminate\Routing\Router::$app错误
  • 后续你尝试访问的$container属性是Router类的受保护属性,不允许类外直接访问,因此触发cannot access protected property错误
解决方案

有两种可行的修改方式,任选其一即可:

方案1:使用Laravel全局辅助函数(推荐写法)

直接替换路由代码为如下内容:

Route::get('/', function () {
    return app()->version();
});

这个写法是新版Laravel路由的标准写法,不需要依赖$router变量传递容器实例,app()辅助函数可以直接获取全局的Laravel容器实例。

方案2:调用Router类的公共方法获取容器

如果你需要保留现有的$router变量写法,可调用Router类提供的公开getContainer()方法获取容器实例:

$router->get('/', function () use ($router) {
    return $router->getContainer()->version();
});

修改完成后重新执行php artisan serve启动项目,即可正常访问,首页会输出当前Laravel的版本号。

内容的提问来源于stack exchange,提问作者Sujeevan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 19:24:05