diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index df41bbbe..2dd0f68c 100755 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -3,7 +3,10 @@ namespace App\Exceptions; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; +use Illuminate\Support\Arr; +use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Throwable; +use Facade\Ignition\Exceptions\ViewException; class Handler extends ExceptionHandler { @@ -50,9 +53,27 @@ class Handler extends ExceptionHandler */ public function render($request, Throwable $exception) { - if ($exception instanceof \Facade\Ignition\Exceptions\ViewException) { - abort(501, '主题初始化发生错误,请在后台对主题检查或配置后重试。'); + if ($exception instanceof ViewException) { + return response([ + 'message' => "主题初始化发生错误,请在后台对主题检查或配置后重试。" + ]); } return parent::render($request, $exception); } + + + protected function convertExceptionToArray(Throwable $e) + { + return config('app.debug') ? [ + 'message' => $e->getMessage(), + 'exception' => get_class($e), + 'file' => $e->getFile(), + 'line' => $e->getLine(), + 'trace' => collect($e->getTrace())->map(function ($trace) { + return Arr::except($trace, ['args']); + })->all(), + ] : [ + 'message' => $this->isHttpException($e) ? $e->getMessage() : __("Uh-oh, we've had some problems, we're working on it."), + ]; + } } diff --git a/app/Http/Controllers/Admin/ThemeController.php b/app/Http/Controllers/Admin/ThemeController.php index 35a37c44..62bb17d1 100644 --- a/app/Http/Controllers/Admin/ThemeController.php +++ b/app/Http/Controllers/Admin/ThemeController.php @@ -28,8 +28,12 @@ class ThemeController extends Controller } $data = var_export($data, 1); - if (!File::put(base_path() . "/config/theme/{$themeName}.php", "