@csrf @php $currencies = \App\Models\Currency::orderByDesc('is_primary')->orderBy('code')->get(); $defaultCurrency = optional($currencies->firstWhere('is_primary',true))->id; $currencyRates = $currencies->map(fn($c)=>[ 'id' => $c->id, 'code' => $c->code, 'rate' => (float)$c->rate_to_primary, 'is_primary' => (bool)$c->is_primary, ]); @endphp
Puedes dejarlo vacío y asignarlo más tarde.
{{-- Columna derecha: subcategorías --}}
{{-- contenedor con altura y scroll responsivo --}}
{{-- grupos: 1 col en móvil, 2 en sm, 3 en lg --}}
@foreach($attributes as $attr)
{{ $attr->name }} {{-- valores: auto-fit para que bajen a otra fila sin romperse --}}
@foreach($attr->values as $val) @php $checked = in_array($val->id, old('attribute_values', $selectedAttributeValues ?? [])); @endphp @endforeach
@endforeach
Un producto tiene 1 categoría principal y múltiples subcategorías.
Arrastra tus imágenes aquí
o
JPG, PNG, WEBP · Máx 5 MB c/u · Múltiples permitidas
0 seleccionadas
Puedes subir varias imágenes. Luego, debajo, eliges la principal o eliminas existentes.
@isset($media)
@foreach($media as $m) @php $raw = trim($m->path ?? ''); $url = null; if ($raw !== '') { if (preg_match('~^https?://~i', $raw)) { $url = $raw; // URL absoluta (S3/CDN) } elseif (str_starts_with($raw, 'public/storage/')) { $publicPath = substr($raw, 7); // quita 'public/' if (file_exists(public_path($publicPath))) { $url = asset($publicPath); } } elseif (str_starts_with($raw, 'storage/')) { if (file_exists(public_path($raw))) { $url = asset($raw); } } else { if (\Storage::disk('public')->exists($raw)) { $url = \Storage::url($raw); // /storage/... } elseif (file_exists(public_path($raw))) { $url = asset($raw); } } } $url = $url ?: asset('img/placeholder_zapato_detalle.svg'); @endphp @endforeach
@foreach($media as $m) @endforeach
Marca las imágenes a eliminar y guarda para aplicar cambios.
@endisset
Cancelar
@push('styles') @endpush @push('scripts') @endpush @push('scripts') @endpush @push('scripts') @endpush @push('scripts') @endpush @push('scripts') @endpush