【问题标题】:Laravel 5.5. App facade is not working in the Exception handler拉拉维尔 5.5。应用程序外观在异常处理程序中不起作用
【发布时间】:2018-03-21 09:57:11
【问题描述】:

我有这样一个简化版的类

class Handler extends ExceptionHandler
{
    protected $dontReport = [];

    public function report(Exception $exception)
    {
        $environment = \App::environment();
        //...
    }

    //...
}

我收到PHP Fatal error: Uncaught Error: Class 'App' not found in .../app/Exceptions/Handler.php:37

在应用程序的其他地方也可以使用。

config/app.php 中已注册。

'aliases' => [
    'App' => Illuminate\Support\Facades\App::class,
    //...
]

【问题讨论】:

    标签: php laravel exception-handling laravel-5.5 laravel-exceptions


    【解决方案1】:

    添加到您的班级顶部use App 然后您可以使用 App Facade,例如 App::environment()

    【讨论】:

    • 问题是我根本不能使用这个门面。 \AppAppuse。为了简单起见,我在示例中使用了\App 版本:)
    • 你试过导入Appuse Illuminate\Support\Facades\App的完整路径吗?这行得通吗?
    • 是的,我也试过了。我决定,这是一个非常奇怪的错误,所以它值得对 SO 提出自己的问题 :)
    • 有趣的是它适用于我的ExceptionHandler 你的命名空间有问题吗?
    • 不,不是 :) 我找到了问题并创建了答案。你可以检查一下,我认为这是一个非常有趣的问题:)
    【解决方案2】:

    问题出在jeroennoten/laravel-adminlte 包、config/adminlte.php 文件中。

    看起来像在

    'menu' => [
        [
            'text' => 'API documentation',
            'url'  => request()->getSchemeAndHttpHost() . '/docs',
            'icon' => 'file-o',
        ],
    ],
    

    request()->getSchemeAndHttpHost() 从控制台调用导致异常,此时与外观相关的某些内容未初始化(很高兴听到确切的内容),因此我的处理程序触发了我一直在捕获的第二个异常。

    我已将菜单创建提取到提供程序,但我不确定这是否是一个好的解决方案。

    class AdminMenuProvider extends ServiceProvider
    {
         public function boot(Dispatcher $events)
         {
             $events->listen(BuildingMenu::class, function (BuildingMenu $event) {
                $event->menu->add([
                    'text' => 'API documentation',
                    'url'  => request()->getSchemeAndHttpHost() . '/docs',
                    'icon' => 'file-o',
                ]);
                //...
            }
         }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-06-04
      • 1970-01-01
      • 2018-06-28
      • 1970-01-01
      • 2013-01-05
      • 2021-02-28
      • 2016-03-19
      • 2018-05-26
      • 2018-02-13
      相关资源
      最近更新 更多