57 Delete Doctores en el sistema de reservas de citas medicas LARAVEL(PHP-MySql) FullStack

Duración: 11 min
Módulo: 🏥 Infraestructura: Consultorios y Doctores Lección 12 de 14

Descripción

🗑️ Lección 57: Eliminación y Finalización del Módulo Doctores

Título del Video: 57 Delete Doctores en el sistema de reservas de citas medicas LARAVEL(PHP-MySql) FullStack

1. ⚙️ Acción de Eliminación (Delete / Destroy)

La eliminación de un doctor requiere un proceso doble ya que implica borrar registros de dos tablas relacionadas: doctors y users.

A. Vista de Confirmación (confirm_delete)

  • Lógica: El método confirm_delete($id) en el DoctorController recibe el ID del doctor, busca el registro con Doctor::find($id) y retorna la vista delete.blade.php.
  • Diseño: La vista de confirmación muestra la información del doctor a eliminar dentro de una tarjeta de color rojo de peligro (Danger), y pregunta al usuario si está seguro de eliminar el registro [02:26].
  • Formulario: El formulario de la vista utiliza el método @method('DELETE') para enviar la solicitud al método destroy del controlador [03:06].

B. Lógica de Eliminación (destroy)

El método destroy($id) se encarga de eliminar el doctor y su cuenta de usuario asociada, manteniendo la limpieza de la base de datos:

  1. Búsqueda del Doctor: El registro del doctor se busca mediante su ID [04:34].
  2. Eliminación del Usuario: Primero se elimina el usuario asociado al doctor utilizando la relación y el ID. Esto es clave para evitar que queden cuentas de usuario huérfanas en la tabla users [04:47].
    • Doctor::find($id)->user->delete()
  3. Eliminación del Doctor: Finalmente, se elimina el registro de la tabla doctors [04:58].
  4. Redirección: Se redirige a la vista principal de doctores.index con el mensaje "Se eliminó al doctor de la manera correcta" [05:13].

2. 📊 Integración Final en el Dashboard

Para concluir el módulo, el instructor actualiza el dashboard para incluir el conteo de los doctores, similar a como se hizo con Consultorios:

  • Conteo: En el AdminController, se calcula el total de doctores con Doctor::count() y la variable se pasa a la vista admin/index.blade.php [08:05].
  • Card Informativa: Se añade una nueva tarjeta al dashboard que muestra el total de doctores. Se utiliza el color rojo de peligro (Danger) para esta tarjeta y se enlaza a la ruta del listado de doctores [08:54].

De esta manera, el Módulo de Doctores queda completamente funcional en sus operaciones CRUD [10:26].

El próximo capítulo dará comienzo al desarrollo del módulo de Horarios, que el instructor adelanta que será más complejo por las relaciones y consultas que requiere [10:39].