From 71f4b82e4b89b847a186079824a8928b3a47e620 Mon Sep 17 00:00:00 2001 From: jsasg <735273025@qq.com> Date: Thu, 9 Jul 2026 11:27:04 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A4=84=E7=90=86=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=E6=80=A7=E4=BF=A1=E6=81=AF=E5=9B=9E=E6=98=BE?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=BB=93=E6=9E=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/v1/Product.php | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/app/admin/controller/v1/Product.php b/app/admin/controller/v1/Product.php index 3d2ef6f2..f1ad49a1 100644 --- a/app/admin/controller/v1/Product.php +++ b/app/admin/controller/v1/Product.php @@ -121,17 +121,37 @@ class Product ->hidden(['product']); // 兼容性信息 - $product->compat = ProductCompatRelModel::withoutField([ + $compat = ProductCompatRelModel::withoutField([ 'created_at', 'updated_at', ]) - ->with(['compat' => function($query) { - $query->field(['id', 'label_name']); + ->withJoin(['compat' => function($query) { + $query->whereNull('deleted_at'); }]) ->productId($product->id) ->select() ?->bindAttr('compat', ['label_name']) ?->hidden(['compat']); + $compat_map = []; + if (!empty($compat)) { + foreach ($compat as $item) { + if (!isset($compat_map[$item['product_id']])) { + $compat_map[$item['product_id']] = [ + 'product_id' => $item['product_id'], + 'compat' => [], + 'series_name' => $item['series_name'], + 'show_series_name' => $item['show_series_name'], + 'remark' => $item['remark'], + ]; + } + $compat_map[$item['product_id']]['compat'][] = [ + 'compat_id' => $item['compat_id'], + 'label_name' => $item['label_name'], + ]; + } + $compat_map = array_values($compat_map); + } + $product->compat = $compat_map; return success('获取成功', $product); }