13 CONTROLLER UPDATE para actualizar datos de la tabla en CRUD completo con LARAVEL 10 - FullStack
Duración: 12 minDescripció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:
- 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').
- 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).
- 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.