【问题标题】:Laravel 5.5 application not booting anymore with "A facade root has not been set."Laravel 5.5 应用程序不再以“尚未设置外观根目录”启动。
【发布时间】:2019-07-06 15:40:18
【问题描述】:

由于某种原因,我们的一个应用程序不再启动。堆栈跟踪如下所示:

PHP Fatal error:  Uncaught RuntimeException: A facade root has not been set. in /app/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:218
Stack trace:
#0 /app/app/Exceptions/Handler.php(43): Illuminate\Support\Facades\Facade::__callStatic('get', Array)
#1 /app/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(352): App\Exceptions\Handler->report(Object(Dotenv\Exception\InvalidFileException))
#2 /app/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(123): Illuminate\Foundation\Console\Kernel->reportException(Object(Dotenv\Exception\InvalidFileException))
#3 /app/artisan(37): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#4 {main}
  thrown in /app/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php on line 218

我确定有一些东西改变了并阻止了应用程序的启动。但我不知道到底发生了什么。非常感谢任何帮助。

【问题讨论】:

  • 你最近升级了应用的laravel版本吗?
  • 不,版本没有变化。
  • 最近是否创建了任何自定义外观,但在外观类中未正确配置getFacadeAccessor?也许可以一一评论每个自定义外观,然后看看哪个是罪魁祸首?
  • Illuminate/Support/Facades/Facade.php 将是您可以查看它是否无法使用 getFacadeRoot 实例化类的文件,它会引发该错误
  • 感谢您的建议,我不太确定如何从 getFacadeRoot 方法中找到罪魁祸首。

标签: php laravel laravel-5.5


【解决方案1】:

解决方案非常简单,但很难找到。

.env 变量不应分配为 KEY="VALUE" 并且太多的空格会导致 .env 的初始化崩溃

即: DB_HOST=mysql

只需更正 .env,它就会像魅力一样工作

【讨论】:

    【解决方案2】:

    作为健全性检查,完全删除您的 vendor 目录,然后重新安装(或更新)您的依赖项。可能是其中的文件被错误地更改,现在导致问题。

    rm -rf vendor
    composer update
    

    【讨论】:

      猜你喜欢
      • 2018-03-09
      • 2020-05-18
      • 2020-03-23
      • 1970-01-01
      • 2020-09-10
      • 2020-01-10
      • 1970-01-01
      • 1970-01-01
      • 2020-05-11
      相关资源
      最近更新 更多