10 Edit, Update, Delete Empleados de forma segura con registros relacionados en Laravel FullStack

Duración: 17 min
Módulo: Gestión de Módulos Base (Sucursales, Categorías y Empleados) Lección 1 de 6

Descripció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.