如何解决 PHP 致命错误:未捕获的错误:在 laravel 版本更新时调用未定义的方法 Illuminate\Container\Container::basePath() 错误?

Posted

技术标签:

【中文标题】如何解决 PHP 致命错误:未捕获的错误:在 laravel 版本更新时调用未定义的方法 Illuminate\\Container\\Container::basePath() 错误?【英文标题】:How to solve PHP Fatal error: Uncaught Error: Call to undefined method Illuminate\Container\Container::basePath() error on laravel version update?如何解决 PHP 致命错误:未捕获的错误:在 laravel 版本更新时调用未定义的方法 Illuminate\Container\Container::basePath() 错误? 【发布时间】:2021-04-19 00:42:00 【问题描述】:

我正在尝试将 laravel 版本从 5.3 更新到 5.4,但是当我运行 composer update 命令时出现此错误

php Fatal error:  Uncaught Error: Call to undefined method Illuminate\Container\Container::basePath() in /my-project/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:179
Stack trace:
#0 /my-project/vendor/carbonate/environmentconfig/src/EnvironmentConfig.php(49): base_path()
#1 /my-project/bootstrap/app.php(16): Carbonate\EnvironmentConfig\EnvironmentConfig::get()
#2 /my-project/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(289): Application->storagePath()
#3 /my-project/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(271): Illuminate\Foundation\Application->bindPathsInContainer()
#4 /my-project/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(147): Illuminate\Foundation\Application->setBasePath()
#5 /my-project/bootstrap/app.php(21): Illuminate\Foundation\Application->__construct()

我按照本指南进行更新:https://laravel.com/docs/5.4/upgrade

我也尝试删除供应商文件夹和 composer.lock 文件并运行命令composer install,但我得到了同样的错误。

非常感谢您的帮助

【问题讨论】:

【参考方案1】:

安装程序没有生成.env,很可能是由于缺少文件而没有设置APP_KEY,PHPUnit会抛出这个异常。

试试这些命令:

composer run-script post-root-package-install
php artisan key:generate

【讨论】:

以上是关于如何解决 PHP 致命错误:未捕获的错误:在 laravel 版本更新时调用未定义的方法 Illuminate\Container\Container::basePath() 错误?的主要内容,如果未能解决你的问题,请参考以下文章

PHP:致命错误:未捕获的错误:在布尔值上调用成员函数 execute() [重复]

致命错误:未捕获的错误:调用未定义的函数 mssql_query() [重复]

PHP致命错误:未捕获错误:找不到类

为啥我收到 PHP 致命错误:未捕获的错误:找不到类“MyClass”? [复制]

PHP 致命错误:未捕获的错误:在 PHP 7.2.13 上调用未定义函数 idn_to_ascii()

PHP“致命错误:未捕获错误:调用成员函数prepare()为null”