我有一个类
的简化版本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,
//...
]
答案 0 :(得分:0)
添加到您的班级use App
的顶部,然后您可以使用App Facade,如App::environment()
答案 1 :(得分:0)
问题出在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',
]);
//...
}
}
}