07 ✏️ Editar Usuario - Eliminar Usuario y Restaurar Usuario - Soft Delete | Laravel Sistema Parqueo
Duración: 57 minDescripción
🛠️ LECCIÓN 07: Editar, Eliminar y Restaurar Usuario (Soft Delete) | Laravel Sistema de Parqueo
Esta lección cubre la implementación completa de las acciones de Editar, Eliminar y Restaurar usuarios, utilizando el concepto de Soft Delete (eliminación suave) de Laravel para una gestión segura de registros.
1. Funcionalidad de Edición (edit y update) ✏️
- 1.1. Método edit (Carga de Datos):
- 1.2. Vista de Edición (edit.blade.php):
- Se ajusta el layout (cambio de primary a success) para indicar que es un formulario de actualización [05:10].
- Se precargan todos los campos (value y selected) con la información del usuario, incluyendo el rol actual y el tipo de documento [00:06:04 - 00:11:13].
- 1.3. Método update (Actualización de Datos):
- Se implementa la validación de los campos del formulario, asegurando que el email y el número de documento sean únicos, exceptuando al usuario que se está editando [00:16:04 - 00:17:25].
- Se actualizan los campos básicos del usuario [17:41].
- Se utiliza syncRoles($request->role) para actualizar el rol del usuario, asegurando que solo tenga el rol seleccionado [18:30].
2. Gestión de Listado y Acciones de Eliminación ❌
- 2.1. Filtro en el Listado (index):
- Se modifica la consulta del index para excluir al Super Admin de la lista de usuarios, utilizando la cláusula whereDoesntHave('roles', ...) [00:23:23 - 00:25:03].
- 2.2. Implementación de Soft Delete:
- Se verifica que el modelo User tenga la trait SoftDeletes para habilitar la eliminación suave [34:55].
- Método destroy (Eliminación Suave):
- Validación de seguridad: Se verifica que el usuario autenticado no intente eliminarse a sí mismo [27:08].
- Antes de eliminar, se actualiza el campo estado a false (0) para indicar inactividad [37:28].
- Se utiliza $usuario->delete(), que no elimina el registro de la base de datos, sino que solo agrega una marca de tiempo en el campo deleted_at [33:50].
3. Restauración de Usuarios y Vista de Eliminados 🔄
- 3.1. Listar Eliminados:
- Se modifica la consulta del index para incluir registros eliminados (con deleted_at lleno) utilizando ->withTrashed() [41:10].
- 3.2. Diferenciación de Acciones en la Vista:
- 3.3. Método restore:
- Se crea la ruta y el método restore en el controlador [45:34].
- Se busca el usuario eliminado con User::withTrashed()->find($id) [53:11].
- Se utiliza el método $usuario->restore() para remover la marca de tiempo de deleted_at [54:00].
- Se actualiza el campo estado a true (1), reactivando la cuenta para el acceso al sistema [00:54:33 - 00:55:16].