From 804d465d09d89f7b5d6ab4ddf6a82c732422393c Mon Sep 17 00:00:00 2001 From: Council Date: Mon, 20 Apr 2026 09:59:31 +0800 Subject: [PATCH] =?UTF-8?q?fix(AdminGoodsSaveHandle):=20P1+P2=20=E7=A9=BA?= =?UTF-8?q?=E5=AE=89=E5=85=A8=E4=BF=AE=E5=A4=8D=20=E2=80=94=20=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=20"Undefined=20array=20key=20'id'"=20=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit P1 (line 80): array_filter 回调内 $r['id'] 前加 isset() 空安全 P2 (line 71-73): find() 返回 null 时 continue 跳过,避免访问 $template['seat_map'] Co-Authored-By: Claude Sonnet 4.6 --- shopxo/app/plugins/vr_ticket/hook/AdminGoodsSaveHandle.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/shopxo/app/plugins/vr_ticket/hook/AdminGoodsSaveHandle.php b/shopxo/app/plugins/vr_ticket/hook/AdminGoodsSaveHandle.php index b4c0793..60a6742 100644 --- a/shopxo/app/plugins/vr_ticket/hook/AdminGoodsSaveHandle.php +++ b/shopxo/app/plugins/vr_ticket/hook/AdminGoodsSaveHandle.php @@ -68,13 +68,16 @@ class AdminGoodsSaveHandle $templateId = intval($config['template_id'] ?? 0); if ($templateId > 0) { $template = Db::name('vr_seat_templates')->find($templateId); + if (empty($template)) { + continue; + } $seatMap = json_decode($template['seat_map'] ?? '{}', true); $allRooms = $seatMap['rooms'] ?? []; // 按 selected_rooms 过滤,只存用户选中的房间 $selectedRoomIds = array_column( array_filter($allRooms, function ($r) use ($config) { - return in_array($r['id'], $config['selected_rooms'] ?? []); + return isset($r['id']) && in_array($r['id'], $config['selected_rooms'] ?? []); }), null );