10 Edit, Update, Delete Empleados de forma segura con registros relacionados en Laravel FullStack
Duración: 17 minDescripción
🔍 Lección 10: Edit, Update, Delete Empleados de Forma Segura con Registros Relacionados en Laravel 🚀
En este capítulo completamos el ciclo CRUD del módulo de Empleados, implementando las acciones de actualización y eliminación. Además, añadimos mecanismos de seguridad para gestionar las relaciones multitabla (users y model_has_roles) y la limpieza automática de archivos huérfanos en el almacenamiento (storage).
🎯 Lo realizado en este capítulo
- 📝 Recuperación y Edición de Datos (edit):
- En EmpleadoController.php, el método edit($id) busca al empleado y pasa su información a edit.blade.php.
- El formulario preselecciona los campos tipo select (tipo de documento, género) y carga los valores guardados de manera dinámica.
- 🔄 Actualización Multitabla con Excepción de Unicidad (update):
- Validaciones Avanzadas: Se actualizó la regla 'unique' para omitir el ID actual en el correo electrónico (tabla users) y número de documento (tabla empleados), evitando fallos por duplicidad propia.
- Sincronización: Se actualizan los datos personales en la tabla empleados y, en paralelo, el username y credenciales en la tabla users.
- 🧹 Eliminación Cascada y Limpieza de Archivos Huérfanos (destroy):
- Eliminación Multitabla: Al borrar un empleado, el sistema localiza y borra simultáneamente su usuario vinculado en users, eliminando también automáticamente el registro en la tabla pivote de roles (model_has_roles).
- Manejo del Storage: Se implementó Storage::disk('public')->delete() tanto en update (al reemplazar la foto de perfil) como en destroy (al eliminar al empleado) usando Storage::disk('public')->exists(). Esto evita acumular imágenes en desuso en el servidor.
- 🌱 Poblado masivo con Seeders de Prueba:
- Para facilitar el desarrollo de los siguientes módulos, se actualizaron los seeders en DatabaseSeeder.php generando 20 sucursales y 20 categorías mediante registros masivos.
🗄️ Próximo paso
Con los módulos de Usuarios, Empleados, Sucursales y Categorías completamente operativos, en la Lección 11 iniciaremos el módulo de Turnos Laborales, donde definiremos los horarios y parámetros para la asignación de jornadas.