13 CONTROLLER UPDATE para actualizar datos de la tabla en CRUD completo con LARAVEL 10 - FullStack

Duración: 12 min
Módulo: 📝 UPDATE, DELETE y Detalles del Registro Lección 3 de 4

Descripción

Lección 13: 🛠️ CONTROLLER UPDATE para actualizar datos de la tabla en CRUD completo con LARAVEL 10 - FullStack (12:37)

Esta lección cubre la lógica final de la operación UPDATE: el envío de los datos del formulario de edición y su procesamiento en el controlador para guardar los cambios en la base de datos. Se pone especial énfasis en el manejo de las rutas y los métodos de envío requeridos por Laravel.

Pasos Clave para la Actualización de Datos:

  1. Configuración de la Ruta Update
    • Se define una nueva ruta en web.php utilizando el método PUT [00:42]. Laravel utiliza PUT o PATCH para modificar recursos existentes, diferenciándolos del método POST (creación).
    • La ruta debe incluir el ID del usuario a actualizar: Route::put('admin/usuarios/{id}', 'UserController@update')->name('usuarios.update').
  2. Preparación del Formulario (edit.blade.php)
    • Método de Envío: Dado que los navegadores web solo soportan nativamente GET y POST para formularios, se debe incluir la directiva @method('PUT') (o @method('PATCH')) dentro del formulario [10:08] para simular la solicitud PUT requerida por la ruta de Laravel.
    • Token CSRF: Se mantiene la directiva @csrf para la protección contra falsificación de solicitudes entre sitios.
    • Ruta: La acción del formulario se dirige a la nueva ruta usuarios.update y se le pasa el ID del usuario: route('usuarios.update', $usuario->id).
  3. Lógica del Controlador (update)
    • Recepción de Datos: La función update() recibe dos argumentos: el objeto $request (con los datos del formulario) y el $id del registro a modificar [03:30].
    • Validación: Se reutilizan las reglas de validación (vistas en la Lección 09) para asegurar que los datos modificados cumplan con los requisitos antes de ser guardados [03:59].
    • Búsqueda y Actualización:
      • Se utiliza User::find($id) para buscar el registro existente en la base de datos [04:47].
      • Se actualizan las propiedades del objeto ($usuario->name, $usuario->email, etc.) con los nuevos valores del $request.
    • Guardado: Se llama a $usuario->save() para persistir los cambios en la fila existente de la tabla.
    • Redirección: Tras el éxito, se retorna una redirección a la vista de listado de usuarios (usuarios.index) [07:37] para confirmar el cambio.