48 Relación de modelos consultorio, doctores y horarios en el sistema conLARAVEL(PHP-MySql)FullStack

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

Descripción

🔗 Lección 48: Relación de Modelos con Eloquent

Título del Video: 48 Relación de modelos consultorio, doctores y horarios en el sistema con LARAVEL(PHP-MySql) FullStack

El objetivo principal de esta lección es definir las relaciones en los modelos de Laravel para facilitar la manipulación de datos y la creación de consultas limpias, aprovechando el ORM Eloquent.

1. 🏥 Modelo Consultorio

En este modelo, el instructor define la propiedad $fillable (campos que se pueden asignar masivamente) [01:47] y establece las dos relaciones de uno a muchos que se analizaron previamente:

  • Relación con Doctores:
    • Un Consultorio puede tener muchos Doctores.
    • Función: doctores()
    • Tipo de relación: hasMany(Doctor::class) [03:47].
  • Relación con Horarios:
    • Un Consultorio puede tener muchos Horarios.
    • Función: horarios()
    • Tipo de relación: hasMany(Horario::class) [05:05].

2. 👨‍⚕️ Modelo Doctor

El modelo Doctor establece sus propios campos $fillable [05:50] y define las relaciones con los otros módulos:

  • Relación con Consultorio:
    • Un Doctor pertenece a un Consultorio (aunque la relación es compleja, se define desde esta perspectiva para acceder al nombre de su consultorio asignado).
    • Función: consultorio()
    • Tipo de relación: belongsTo(Consultorio::class) [07:18].
  • Relación con Horarios:
    • Un Doctor puede tener muchos Horarios definidos.
    • Función: horarios()
    • Tipo de relación: hasMany(Horario::class) [07:54].

3. ⏰ Modelo Horario

El modelo Horario define sus campos $fillable (Día, Hora de inicio, Hora fin, doctor_id, consultorio_id) [08:45] y define que pertenece a los dos modelos con los que se relaciona:

  • Relación con Doctor:
    • Un Horario pertenece a un Doctor.
    • Función: doctor()
    • Tipo de relación: belongsTo(Doctor::class) [09:40].
  • Relación con Consultorio:
    • Un Horario pertenece a un Consultorio.
    • Función: consultorio()
    • Tipo de relación: belongsTo(Consultorio::class) [10:14].

Con estas relaciones definidas en los tres modelos, el sistema está listo para comenzar a implementar las vistas y la lógica en los controladores para el CRUD de Consultorios en la siguiente lección [10:58].