22 💾 STORE Productos y Vista Detalle (Show) | Validación y Almacenamiento en Laravel 12 E-commerce

Duración: 21 min
Módulo: 📦 Módulos Esenciales (Categorías y Productos) 17-24 Lección 6 de 8

Descripción

Lección 22: 💾 Almacenamiento de Productos (Store) y Vista de Detalle (Show)

Este capítulo crucial se enfoca en dar funcionalidad al formulario de creación de productos (acción Store) y en diseñar la vista de detalle (Show), donde se implementan las consultas a través de las relaciones de los modelos y se prepara el espacio para la carga de imágenes.

📥 Almacenamiento del Producto (Store)

Se implementa la lógica de backend para procesar y guardar los datos enviados desde el formulario:

  • 🛡️ Validación Rigurosa: Se aplica una validación estricta a todos los campos esenciales [05:30]:
    • nombre, codigo, descripcion_corta, precio_compra, precio_venta, stock y categoria_id son requeridos.
    • codigo debe ser único en la tabla productos.
    • Los campos de precio y stock deben ser numéricos.
    • categoria_id debe existir en la tabla categorías (exists:categorias,id).
  • 💾 Guardado en Base de Datos: Una vez validados, los datos se almacenan creando una nueva instancia del modelo Producto [06:41].
  • 🔔 Notificación de Éxito: Se muestra un mensaje de confirmación ("Producto creado exitosamente") después del registro [07:14].

👁️ Diseño de la Vista de Detalle (Show)

Se crea una vista dedicada a mostrar toda la información de un producto de manera clara, utilizando dos tarjetas (cards) principales:

  • ⚡ Uso de Relaciones en la Vista: En lugar de mostrar el ID, se utiliza la relación definida en el modelo para acceder directamente al nombre de la categoría [13:14], lo que hace el código más limpio y legible:
    • $producto->categoria->nombre
  • ✨ Impresión de HTML Enriquecido: El campo descripcion_larga, que fue guardado con formato HTML a través de CheckEditor, se imprime de forma segura en la vista [18:15]. Esto se logra usando la sintaxis de Laravel {! $producto->descripcion_larga !} para renderizar correctamente el texto con sus estilos, negritas, enlaces y saltos de línea [18:37].
  • 🖼️ Preparación de la Galería: Se reserva y se diseña la segunda tarjeta (card) titulada "Imágenes del Producto" [20:35]. Este espacio queda listo para la próxima lección, donde se desarrollará la funcionalidad de carga y gestión de imágenes.