36 Eliminar y Restaurar Clientes en Laravel 12: Soft Deletes y Recuperación de Registros 🗑️♻️
Duración: 23 min
Módulo: Módulo clientes
Lección 9 de
9
Descripción
🗑️ Lección 36: Eliminar y Restaurar Clientes en Laravel 12: Soft Deletes
En esta sesión final del módulo de clientes de Benji V2, implementamos un sistema de "borrado lógico" o Soft Deletes. Esta técnica es fundamental en sistemas financieros, ya que permite "eliminar" registros de la vista del usuario sin borrarlos físicamente de la base de datos, manteniendo la integridad histórica de los préstamos y pagos.
🧠 La Lógica del Soft Delete Relacional
Entendemos por qué no debemos borrar datos permanentemente:
- 🛡️ Integridad Referencial: Si un cliente tiene préstamos asociados, borrarlo físicamente causaría errores en el sistema. Con Soft Deletes, el registro permanece en la base de datos pero se marca como "eliminado" mediante el campo deleted_at [10:29].
- 🔗 Eliminación en Cascada Lógica: Configuramos el sistema para que, al eliminar un cliente, su cuenta de usuario vinculada también se marque como eliminada y su estado cambie automáticamente a "Inactivo" [05:13].
🏗️ Configuración Técnica del Modelo
Preparamos el backend para soportar la recuperación de datos:
- 🛠️ Migraciones y Traits: Añadimos el campo $table->softDeletes() en la migración de clientes e incorporamos el trait use SoftDeletes en el modelo Cliente [07:51].
- 📡 Consultas Avanzadas: Utilizamos el método withTrashed() en los controladores para poder listar tanto a los clientes activos como a los "eliminados", permitiendo así su gestión posterior [11:50].
♻️ Sistema de Restauración (Método Restore)
Implementamos la capacidad de "deshacer" una eliminación:
- 🔄 Recuperación Bidireccional: Desarrollamos la lógica para que, al restaurar un cliente, el sistema reactive automáticamente su cuenta de usuario y cambie su estado de "Inactivo" a "Activo" de nuevo [17:37].
- ⚙️ Sincronización de Módulos: Aseguramos que si restauras a un usuario desde el módulo de Usuarios, el perfil del Cliente correspondiente también se restaure, y viceversa, manteniendo ambos módulos siempre sincronizados [22:07].
🎨 Interfaz de Usuario para Gestión de Bajas
Refinamos la tabla de clientes con acciones dinámicas:
- 🔘 Botones Condicionales: La tabla detecta si un registro está eliminado. Si lo está, oculta los botones de editar/ver y muestra un botón de "Restaurar" con un icono de reciclaje [16:32].
- 🚦 Feedback Visual: Los clientes eliminados se muestran con su estado en rojo ("Inactivo"), indicando claramente que no tienen acceso actual al sistema [18:43].
✅ Resultado del Módulo
¡Felicidades! Has completado el CRUD profesional de Clientes. Tu sistema ahora cuenta con:
- Listado avanzado con paginación y buscador.
- Registro y Edición con gestión inteligente de imágenes y validaciones.
- Eliminación Segura que protege la información histórica mediante Soft Deletes.
Lecciones
Introducción e instalación
Módulo Ajustes del sistema
Lección 6. 11 ✅ | ¡Módulo de Ajustes Listo! Traer Información y Guardar Cambios | Laravel 12 💰
18 min
Módulo Roles
Lección 3. 14 📋 | Listado de Roles: Creando una Tabla Profesional con Tailwind CSS | Laravel 12 🚀
11 min
Lección 4. 15 ➕ Creando Nuevos Roles: Formulario de Registro y Validación | Laravel 12 & Spatie 🛡️
17 min
Lección 8. 19 💣 Método Destroy: Cómo Eliminar Registros con Validación y Alertas Pro en Laravel 12 ✨
9 min
Módulo Usuarios
Módulo clientes
Lección 2. 29 Cómo crear Datos de Prueba con Factories - Módulo Clientes Laravel Factories y Faker 🚀
21 min
Módulo Categorías
Módulo Prestamos y Pagos
Lección 5. 46 Módulo de Pagos en Laravel 12: Migración, Estructura de Cuotas y Control de Estados 💳📊
13 min
Módulo Contratos
Módulo Notificaciones
Módulo Permisos
Módulo Backups
Módulo Reportes
Módulo Producción
Lección 4. 77 Mostrar Roles de Usuario en la Interfaz: Personalización con Flux UI y FontAwesome 🛡️👤
13 min
Módulo Pagos Parciales
Módulo Liquidación de Préstamo
Últimos Ajustes del Sistema
Lección 7. 100 Página 404 Personalizada en Laravel: Diseño Elegante y Profesional para tu Sistema 🚫✨
7 min
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️