Laravel 5.5。应用程序外观在异常处理程序中不起作用
Laravel 5.5. App facade is not working in the Exception handler
我有这么一个简化版的class
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,
//...
]
添加到 class use App
的顶部,然后您就可以像 App::environment()
这样使用 App Facade
问题出在 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',
]);
//...
}
}
}
我有这么一个简化版的class
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,
//...
]
添加到 class use App
的顶部,然后您就可以像 App::environment()
问题出在 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',
]);
//...
}
}
}