54 Módulo Doctores en el sistema de reservas de citas medicas LARAVEL(PHP-MySql) FullStack

Duración: 20 min
Módulo: 🏥 Infraestructura: Consultorios y Doctores Lección 9 de 14

Descripción

👨‍⚕️ Lección 54: Inicio del Módulo Doctores

Título del Video: 54 Módulo Doctores en el sistema de reservas de citas medicas LARAVEL(PHP-MySql) FullStack

1. 🤝 Definición de Relaciones de Usuario

El doctor, al ser un usuario del sistema que necesita acceder con credenciales, está relacionado con la tabla users.

  • Relación en el Modelo User:
    • Se añade la relación de uno a uno (hasOne) para vincular cada usuario con un doctor, similar a cómo se hizo con las secretarias [02:49].
    • Función: doctor()
    • Tipo de relación: hasOne(Doctor::class)
  • Relación en el Modelo Doctor:
    • Se define la relación que permite al doctor pertenecer a un usuario, lo que facilita acceder a los datos de login (correo y contraseña) del doctor.
    • Función: user()
    • Tipo de relación: belongsTo(User::class) [03:39].

2. 🗺️ Preparación de Vistas y Rutas

Se preparó la estructura de archivos necesaria y se definieron las rutas para el nuevo módulo.

  • Creación de Vistas (.blade.php):
    • Se crea el directorio doctores dentro de las vistas de admin.
    • Se crean las cinco vistas básicas para el CRUD: index, create, show, edit y delete [04:47].
  • Definición de Rutas:
    • Se definen las rutas Resource para el DoctorController bajo el prefijo de admin, estableciendo las rutas para el listado, creación, visualización, edición y eliminación de doctores [05:44].

3. 📋 Implementación del Listado (Index)

Se implementó la lógica para mostrar la lista de doctores y se diseñó la tabla de visualización.

  • Lógica del Controlador:
    • En el método index del DoctorController, se realiza una consulta para obtener todos los doctores utilizando la relación with('user') [11:43]. Esto permite cargar simultáneamente los datos del doctor y los datos del usuario asociado (necesario para el correo electrónico).
    • La variable $doctores resultante se pasa a la vista.
  • Diseño de la Tabla:
    • La tabla se copió y adaptó del módulo de Consultorios, ajustando las columnas a los datos del doctor:
      • Nombres y Apellidos
      • Teléfono
      • Licencia Médica
      • Especialidad
      • Correo Electrónico
      • Acciones
    • Acceso a Correo Electrónico: Se demostró cómo acceder al correo electrónico, que reside en la tabla users pero está relacionado: $doctore->user->email [19:07].

La implementación se confirma con un registro de prueba creado manualmente en la base de datos para verificar que el listado y la consulta con la relación with('user') funcionan correctamente [17:33]. El siguiente paso será enfocarse en la acción de Creación (Create) de un doctor [20:05].