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.phpconfig/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(带覆盖)不喜欢来自多个文件的路由并抛出“尚未设置外观根”。没有报道它是绿色的

如何在 Laravel 外部的包中使用 Laravel 外观(缓存、日志、存储)

自定义根文件夹的 Laravel 重定向问题