37 Controller UPDATE en el curso de LARAVEL 10 Sistema de control de asistencia

Duración: 13 min
Módulo: Actualización y Eliminación (Update & Delete) 🔄 Lección 4 de 6

Descripción

🎬 Lección 37: ⚙️ Implementación del Controller UPDATE

Enlace del Video: https://youtu.be/8OneLJtF-pg

💡 Objetivo:

Completar el método update en el MiembrosController para validar los datos, actualizar el registro en la base de datos y gestionar la eliminación de la fotografía antigua en el sistema de archivos (storage).

1️⃣ Ajustes de Envío del Formulario (Front-end) 📐

Para que el formulario de edición funcione correctamente según las convenciones de rutas resource de Laravel, se confirma un detalle en la vista edit.blade.php:

  • Método: Se debe especificar el método de solicitud HTTP como PUT o PATCH utilizando la directiva @method('PATCH') (o @method('PUT')) dentro del formulario [00:51]. Esto le dice a Laravel que debe usar el método update del controlador.

2️⃣ Lógica del Método update (Back-end) 🧠

El método update en el MiembrosController es el encargado de procesar la solicitud:

  1. Validación: Se aplica el mismo sistema de validación ($request->validate([...])) utilizado en el método store para asegurar que no se envíe información en blanco ni "basura" a la base de datos al momento de actualizar [01:30].
  2. Búsqueda del Miembro: Se utiliza la consulta Miembro::find($id) para obtener el objeto del miembro que se está editando. Esto es necesario para poder modificar sus propiedades [02:37].
  3. Actualización de Campos: Se asignan los datos del $request a las propiedades del objeto $miembro (ej. $miembro->nombre_apellido = $request->nombre_apellido;) [03:07].
  4. Guardado y Redirección: Finalmente, se llama al método $miembro->save() para persistir todos los cambios en la base de datos [04:37]. Una vez completado, se retorna una redirección a la vista index con un mensaje de éxito [06:29].

3️⃣ Gestión de Archivos: Eliminación de la Imagen Antigua 🧹

El paso más crítico del update para optimizar el almacenamiento es la gestión de la fotografía:

  • El Problema: Al subir una nueva foto, la foto anterior del miembro queda almacenada en el storage del servidor. Estos archivos obsoletos se consideran "basura" y consumen espacio innecesariamente [09:29].
  • La Solución: Dentro de la lógica condicional que maneja la carga de una nueva fotografía, se debe añadir un paso para eliminar el archivo anterior [10:07].
  • Comando Clave: Se utiliza la fachada Storage::delete() apuntando a la ruta de la fotografía anterior antes de subir la nueva [11:13]. Esto asegura que la foto vieja se borre antes de que la foto nueva tome su lugar.

Este proceso garantiza que el registro se actualice con la nueva foto y que el espacio de almacenamiento se mantenga limpio y optimizado [11:59].