33 Como eliminar registro con tablas relacionadas en LARAVEL(PHP-MySql) FullStack
Duración: 11 minDescripción
🗑️ Lección 33: Cómo Eliminar Registros con Tablas Relacionadas
Título del Video: 33 Como eliminar registro con tablas relacionadas en LARAVEL (PHP-MySql) FullStack
Esta lección se centra en la lógica necesaria para eliminar un registro del módulo de Secretarias, un proceso que debe asegurar la eliminación de la información tanto de la tabla secretarias como de la tabla users para mantener la integridad del sistema.
📝 Revisión de la Restricción onDelete('cascade')
El instructor comienza explicando cómo funciona la relación de tablas configurada en la migración [00:53]:
- Comportamiento de Cascada: Si se elimina el registro de la tabla principal (users), Laravel borra automáticamente, en cascada, el registro relacionado en la tabla secundaria (secretarias) debido a la configuración onDelete('cascade') en la migración.
- El Problema a Solucionar: Si se intenta eliminar primero el registro de la tabla secundaria (secretarias), el registro de la tabla users (la cuenta de acceso) permanece. Esto deja una cuenta de usuario huérfana en la base de datos sin un perfil de secretaria asociado [02:37].
El objetivo es codificar la lógica para que, al solicitar la eliminación de una secretaria, el sistema se encargue de borrar ambos registros (secretaria y usuario) mediante código.
⚙️ Configuración de la Confirmación de Eliminación
Se establece la interfaz y la ruta para confirmar la eliminación del registro antes de ejecutar el borrado final.
🗺️ Definición de la Ruta de Confirmación
Se crea una nueva ruta de tipo GET que se encarga de mostrar la vista de confirmación:
- Ruta: Se define una ruta que acepta el ID de la secretaria, por ejemplo: /admin/secretarias/{id}/confirm-delete [05:05].
- Función Asociada: Esta ruta se mapea a la nueva función confirmDelete dentro del SecretariaController [05:13].
💻 Lógica de la Función confirmDelete
La función en el controlador se encarga de buscar y preparar el registro para la vista [06:35]:
- Recibe el ID de la secretaria.
- Busca el objeto $secretaria utilizando el modelo y carga la relación con el usuario (with('user')).
- Retorna la vista delete.blade.php, pasando el objeto $secretaria.
🖼️ Diseño de la Vista delete.blade.php
Esta vista es un formulario de solo lectura que solicita la confirmación al usuario [07:49]:
- Diseño: Se reutiliza la estructura de la vista de edición (edit.blade.php).
- Título: Se muestra el nombre de la secretaria a borrar (Ejemplo: Borrar secretaria [Nombre Apellido]).
- Campos: Todos los campos de información se muestran en modo deshabilitado (disabled) para que no puedan ser modificados, solo visualizados [08:50].
- Mensaje de Advertencia: Se muestra la pregunta: "¿Está seguro de eliminar este registro?" [08:14].
- Botón: Se configura un botón de color rojo (danger) con el texto "Eliminar registro" [10:05].
El instructor deja pendiente para la siguiente lección la implementación de la función destroy, que se encargará de ejecutar el borrado definitivo en ambas tablas de forma segura [10:31].
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️