微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 null 上调用成员函数 connection() 升级 Laravel Homestead 后

如何解决在 null 上调用成员函数 connection() 升级 Laravel Homestead 后

我将我的 Homestead 盒子从 20.04 存储库更新到了最新的官方版本。一切安装正常,似乎工作正常,但我的应用程序现在完全坏了。我过去升级过 Homestead 没有任何问题。

我运行的任何命令都会返回:

PHP Fatal error:  Uncaught Error: Call to a member function connection() on null in /home/vagrant/code/REMOVED/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.PHP:1498
Stack trace:
#0 /home/vagrant/code/REMOVED/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.PHP(1464): Illuminate\Database\Eloquent\Model::resolveConnection()
#1 /home/vagrant/code/REMOVED/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.PHP(1271): Illuminate\Database\Eloquent\Model->getConnection()
#2 /home/vagrant/code/REMOVED/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.PHP(1188): Illuminate\Database\Eloquent\Model->newBaseQueryBuilder()
#3 /home/vagrant/code/REMOVED/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.PHP(1224): Illuminate\Database\Eloquent\Model->newModelQuery()
#4 /home/vagrant/code/REMOVED/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.PHP(1177): Illuminate\Database\Eloquent\Model->newQueryWithoutScopes()
#5 /home/vagrant/code/REMOVED in /home/vagrant/code/REMOVED/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.PHP on line 1498

我无法运行任何 artisan 命令,Composer 也无法完成创建正确的自动加载文件

浏览网页界面显示

Fatal error: Uncaught Error: Call to undefined method ComposerAutoloaderInit4ae805320ff6a78bd9cc38b042c51006::getLoader() in /home/vagrant/code/REMOVED/vendor/autoload.PHP:7 Stack trace: #0 /home/vagrant/code/REMOVED/bootstrap/autoload.PHP(3): require_once() #1 /home/vagrant/code/REMOVED/public/index.PHP(34): require_once('/home/vagrant/c...') #2 {main} thrown in /home/vagrant/code/REMOVED/vendor/autoload.PHP on line 7

MariaDB 正在运行,仍然使用认的 homestead/secret 用户和 pass。 .env 和所有代码也与升级前相同。还在 Nginx 和 CLI 中使用 PHP 7.4。

我不知道该做什么或去哪里寻找。有什么想法吗?

[编辑]

我已启用 MariaDB 常规日志以查看传入的连接尝试,但 Laravel 甚至不尝试连接,因此这不是数据库问题。

解决方法

我已经部分了解了。 Linux 没有显示整个错误,当我在我的 Mac 本地运行 artisan 命令时,它指向一些试图执行数据库查询以获取设置值的包。

由于某种未知原因而失败。我拆除了线路,一切顺利。缓存 .env,运行 dump-auto 并重新启动 FPM,一切正常,加载 1 个页面。

所有后续页面加载都会引发 PHP 错误:

Fatal error: Uncaught Error: Call to undefined method ComposerAutoloaderInit4d864c59644e635478404aa0440854b7::getLoader() in /home/vagrant/code/REMOVED/vendor/autoload.php:7 Stack trace: #0 /home/vagrant/code/REMOVED/bootstrap/autoload.php(3): require_once() #1 /home/vagrant/code/REMOVED/public/index.php(34): require_once('/home/vagrant/c...') #2 {main} thrown in /home/vagrant/code/REMOVED/vendor/autoload.php on line 7

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。