diff --git a/beike/Admin/Http/Controllers/MarketingController.php b/beike/Admin/Http/Controllers/MarketingController.php index 075b748d..ea76eb77 100644 --- a/beike/Admin/Http/Controllers/MarketingController.php +++ b/beike/Admin/Http/Controllers/MarketingController.php @@ -48,13 +48,16 @@ class MarketingController */ public function show(Request $request) { - $code = $request->code; - $plugin = MarketingService::getPlugin($code); - $data = [ - 'plugin' => $plugin, - ]; - - return view('admin::pages.marketing.show', $data); + try { + $code = $request->code; + $plugin = MarketingService::getPlugin($code); + $data = [ + 'plugin' => $plugin, + ]; + return view('admin::pages.marketing.show', $data); + } catch (\Exception $e) { + return redirect(admin_route('marketing.index'))->withErrors(['error' => $e->getMessage()]); + } } diff --git a/beike/Admin/Services/MarketingService.php b/beike/Admin/Services/MarketingService.php index 0429c5d3..6d546791 100644 --- a/beike/Admin/Services/MarketingService.php +++ b/beike/Admin/Services/MarketingService.php @@ -12,6 +12,7 @@ namespace Beike\Admin\Services; use Illuminate\Support\Facades\Http; +use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; class MarketingService { @@ -27,6 +28,10 @@ class MarketingService public static function getPlugin($code) { $url = config('beike.api_url') . '/api/plugins/' . $code; - return Http::get($url)->json(); + $plugin = Http::get($url)->json(); + if (empty($plugin)) { + throw new NotFoundHttpException('该插件不存在或已下架'); + } + return $plugin; } } diff --git a/resources/beike/admin/views/pages/marketing/index.blade.php b/resources/beike/admin/views/pages/marketing/index.blade.php index bca8e5c1..7bab558a 100644 --- a/resources/beike/admin/views/pages/marketing/index.blade.php +++ b/resources/beike/admin/views/pages/marketing/index.blade.php @@ -5,6 +5,7 @@ @section('body-class', 'page-marketing') @section('content') + @dump($errors)