@props([ 'name', 'label' => '이미지', 'model' => null, 'width' => 60, 'height' => 60, 'ratioText' => '권장 비율: 1:1', 'required' => false ]) @php $slotKey = $name; $inputId = "{$slotKey}_image_id"; $previewId = "{$slotKey}-preview"; $removeBtnId = "btn-remove-{$slotKey}"; // 🌟 뷰티샵 전용 라우트 고정 주입 $shopUploadRoute = '/shop-admin/images'; $shopIndexRoute = '/shop-admin/images/list'; $shopFolderRoute = '/shop-admin/image-folders'; // M:N 피벗 이미지 객체 추출 $slotImage = ($model && method_exists($model, 'getSlotImage')) ? $model->getSlotImage($slotKey) : null; $currentImageId = old($inputId); if ($currentImageId === null && $model) { if ($slotImage) { $currentImageId = $slotImage->id; } else { $legacyColumn = "{$slotKey}_path"; if (!empty($model->{$legacyColumn})) { $legacyImg = \App\Models\Image::where('path', $model->{$legacyColumn})->first(); $currentImageId = $legacyImg?->id; } } } $previewUrl = null; if ($slotImage) { $previewUrl = $slotImage->thumb_url ?: asset('storage/' . $slotImage->path); } elseif ($model) { $legacyColumn = "{$slotKey}_path"; if (!empty($model->{$legacyColumn})) { $previewUrl = asset('storage/' . $model->{$legacyColumn}); } } @endphp