Laravel 6:尚未设置外观根
Posted
技术标签:
【中文标题】Laravel 6:尚未设置外观根【英文标题】:Laravel 6 : A facade root has not been set 【发布时间】:2020-03-23 21:11:02 【问题描述】:我已经将我的网站从 Laravel 5.8 迁移到 Laravel 6,在 composer 更新 之后,我在网站上出现了这个错误,并且只使用了一个命令 php artisan :
php Fatal error: Uncaught RuntimeException: A facade root has not been set. in /var/www/html/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:242
Stack trace:
#0 /var/www/html/app/Exceptions/Handler.php(48): Illuminate\Support\Facades\Facade::__callStatic('check', Array)
#1 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(376): App\Exceptions\Handler->report(Object(Symfony\Component\Debug\Exception\FatalThrowableError))
#2 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(141): Illuminate\Foundation\Console\Kernel->reportException(Object(Symfony\Component\Debug\Exception\FatalThrowableError))
#3 /var/www/html/artisan(37): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 main
thrown in /var/www/html/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php on line 242
Fatal error: Uncaught RuntimeException: A facade root has not been set. in /var/www/html/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:242
Stack trace:
#0 /var/www/html/app/Exceptions/Handler.php(48): Illuminate\Support\Facades\Facade::__callStatic('check', Array)
#1 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(376): App\Exceptions\Handler->report(Object(Symfony\Component\Debug\Exception\FatalThrowableError))
#2 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(141): Illuminate\Foundation\Console\Kernel->reportException(Object(Symfony\Component\Debug\Exception\FatalThrowableError))
#3 /var/www/html/artisan(37): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 main
thrown in /var/www/html/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php on line 242
我采用了一个新的 laravel 6 文件 config\app.php 和一个新的 .env 但总是这个错误...
我该如何解决?
【问题讨论】:
【参考方案1】:我遇到了这些错误——我自己的错——我正在将我的 Laravel 应用程序文件移动到一个子目录中,看起来像 app.php
以及我的 /config/
目录中缺少一些其他文件:
cache.php
cors.php
filesystems.php
hashing.php
logging.php
mail.php
services.php
session.php
view.php
应该是:
app.php
auth.php
broadcasting.php
cache.php
cors.php
database.php
filesystems.php
hashing.php
logging.php
mail.php
queue.php
services.php
session.php
view.php
【讨论】:
【参考方案2】:我知道,答案有点晚了 :) 但我仍然相信它可以帮助遇到这个问题的其他人。
用Str::slug()
替换所有str_slug()
方法解决了这个问题。
就我而言,我在 config/cache.php
和 config/session.php
文件中找到了旧助手。
【讨论】:
【参考方案3】:最后我找到了解决方案,我复制了一个 laravel 6 配置文件:config/session.php,它的工作原理。
【讨论】:
就我而言,我还从原始存储库中获取了config/cache.php
文件。以上是关于Laravel 6:尚未设置外观根的主要内容,如果未能解决你的问题,请参考以下文章
将 laravel 5.8 升级到 6:致命错误:未捕获的 RuntimeException:尚未设置外观根
Laravel 5.5 PHPunit 测试 - “尚未设置外观根。”
Laravel 7致命错误:未捕获的RuntimeException:尚未设置外观根
Laravel 5.5:PHPUnit(带覆盖)不喜欢来自多个文件的路由并抛出“尚未设置外观根”。没有报道它是绿色的