06 ⚙️ Guardar y Actualizar los Ajustes del Sistema con Imágenes | Ecommerce Laravel 12 FullStack

Duración: 42 min
Módulo: 🚀 Configuración Inicial y Sistema de Administración 1-6 Lección 6 de 6

Descripción

Lección 06: ⚙️ Persistencia y Gestión Avanzada del Módulo de Ajustes

En esta clase fundamental, Hilari Web completa el desarrollo funcional del módulo de Ajustes del Sistema. El enfoque se traslada del diseño de la vista a la robustez del Controlador, cubriendo el registro inicial y, de manera crucial, la actualización de datos y archivos.

💾 El Ciclo Completo de Datos y Archivos

Esta lección proporciona las técnicas esenciales para garantizar la seguridad, la eficiencia y la integridad de los datos en Laravel:

  • 1. 🛡️ Seguridad y Envío de Formularios:
    • Se define la ruta tipo POST para la función store en el controlador [01:35].
    • Se añade el token de seguridad @csrf [04:39] al formulario, esencial para prevenir ataques Cross-Site Request Forgery.
    • Se incluye el atributo enctype="multipart/form-data" [03:22] para permitir el envío de archivos (imágenes).
  • 2. ✅ Validación Robusta (Back-end):
    • Se implementan reglas de validación en el back-end ($request->validate()) para asegurar la calidad de los datos (e.g., required, string:255, email, url) [06:29].
    • Se presta especial atención a la validación de archivos, especificando tipo (image), extensiones (jpg, png, gif), y tamaño máximo (max:2048) [06:49].
    • 💡 Lección Clave: Se demuestra que la validación del back-end es indispensable, ya que la validación del front-end (required) puede ser fácilmente vulnerada [07:38].
  • 3. 🔄 Lógica de Registro Único (Guardar o Actualizar):
    • Se establece una lógica condicional en el controlador: si ya existe un registro en la tabla ajustes (mediante Ajuste::first()), la acción no es registrar, sino actualizar el registro existente [15:24].
  • 4. 🖼️ Gestión Inteligente de Archivos (Imágenes):
    • Se utiliza el comando php artisan storage:link [22:34] para crear un enlace simbólico que permite acceder a las imágenes subidas desde el navegador.
    • Se configura la subida de archivos (Logotipo e Imagen de Login) con ->store('logos', 'public') [11:29], asegurando que las imágenes se guarden en el disco público y con nombres encriptados.
    • 🗑️ Optimización de Espacio: Se implementa el método Storage::delete() [34:49] para eliminar la imagen anterior cada vez que se sube un nuevo archivo, evitando el almacenamiento innecesario de archivos obsoletos.

Esta lección es fundamental, ya que conecta de forma avanzada la presentación de datos con la persistencia segura y optimizada en el servidor.