【问题标题】:Uncaught RuntimeException: A facade root has not been set. in Facade.php:258 when upgrading to Laravel 7未捕获的 RuntimeException:尚未设置外观根。在 Facade.php:258 升级到 Laravel 7 时
【发布时间】:2020-05-14 02:20:54
【问题描述】:

即使我遵循 laravel 升级指南,我仍然收到有关外观的错误

PHP Fatal error:  Uncaught RuntimeException: A facade root has not been set. in D:\Git_Undiksha\legalisir-ijasah-online\vendor\laravel\framework\src\Illuminate\Support\Faca
des\Facade.php:258
Stack trace:
#0 D:\Git_Undiksha\legalisir-ijasah-online\app\Exceptions\Handler.php(39): Illuminate\Support\Facades\Facade::__callStatic('error', Array)
#1 D:\Git_Undiksha\legalisir-ijasah-online\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php(366): App\Exceptions\Handler->report(Object(Error))
#2 D:\Git_Undiksha\legalisir-ijasah-online\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php(131): Illuminate\Foundation\Console\Kernel->reportException
(Object(Error))
#3 D:\Git_Undiksha\legalisir-ijasah-online\artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Compo
nent\Console\Output\ConsoleOutput))
#4 {main}
  thrown in D:\Git_Undiksha\legalisir-ijasah-online\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php on line 258

Fatal error: Uncaught RuntimeException: A facade root has not been set. in D:\Git_Undiksha\legalisir-ijasah-online\vendor\laravel\framework\src\Illuminate\Support\Facades\F
acade.php:258
Stack trace:
#0 D:\Git_Undiksha\legalisir-ijasah-online\app\Exceptions\Handler.php(39): Illuminate\Support\Facades\Facade::__callStatic('error', Array)
#1 D:\Git_Undiksha\legalisir-ijasah-online\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php(366): App\Exceptions\Handler->report(Object(Error))
#2 D:\Git_Undiksha\legalisir-ijasah-online\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php(131): Illuminate\Foundation\Console\Kernel->reportException
(Object(Error))
#3 D:\Git_Undiksha\legalisir-ijasah-online\artisan(35): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Compo
nent\Console\Output\ConsoleOutput))
#4 {main}
  thrown in D:\Git_Undiksha\legalisir-ijasah-online\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php on line 258

Facade.php:258

public static function __callStatic($method, $args)
{
    $instance = static::getFacadeRoot();

    if (! $instance) {
        throw new RuntimeException('A facade root has not been set.');
    }

    return $instance->$method(...$args);
}

这是我的 composer.json:

"require": {
    "php": ">=7.2.5",
    "laravel/framework": "^7.0",
    "nunomaduro/collision": "^4.1",
    "laravel/tinker": "^2.0",
    "facade/ignition": "^2.0"
},
"require-dev": {
    "composer/composer": "^1.10",
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "0.9.*",
    "phpunit/phpunit": "^9.1"
},

我确实将 Handler.php 异常更改为 Throwable,将 session.php 安全环境从 false 更改为 null,并将任何 handle() 命令返回为整数。

如何解决外观错误,我该怎么办?

【问题讨论】:

  • 您如何尝试清除配置和缓存,然后再次进行作曲家更新? php artisan config:cachephp artisan config:clearphp artisan cache:clearcomposer update
  • @Nathan 我试过了,但显示的是外观错误
  • 你是从哪个版本升级的?
  • @jgetner 来自 Laravel 6,但我无法再检查确切的版本,现在我在 Laravel 7 中(php artisan --version 也会重现外观错误)
  • 运行 composer update 然后在控制台窗口中运行 composer dump-autoload。

标签: php laravel laravel-7 laravel-facade


【解决方案1】:

创建一个新的 Laravel 版本 7 项目后,将 app 和 config 文件夹复制到新项目(用于测试目的),重命名一个文件,然后使用 php artisan --version 测试我所做的每项更改(重命名每个无编号文件将(1)和(2)文件改为无编号),最后我发现了问题所在:config/excel.php

在 excel.php 中我注释了 autosize-method 并且它有效!

// 'autosize-method'             => PHPExcel_Shared_Font::AUTOSIZE_METHOD_APPROX,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-22
    • 2021-10-13
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    • 2019-05-22
    • 2019-11-05
    • 2022-09-23
    相关资源
    最近更新 更多