58 Módulo Horarios en el sistema de reservas de citas medicas LARAVEL(PHP-MySql) FullStack
Duración: 25 minDescripción
🕰️ Lección 58: Introducción al Módulo Horarios
Título del Video: 58 Módulo Horarios en el sistema de reservas de citas medicas LARAVEL(PHP-MySql) FullStack
1. 🔗 Relaciones de la Base de Datos
El instructor comienza recordando la estructura de la tabla horarios, la cual es compleja porque tiene dos llaves foráneas [01:36]:
- doctor_id: Relacionada con la tabla de Doctores.
- consultorio_id: Relacionada con la tabla de Consultorios.
Esto significa que un horario siempre debe estar asociado a un doctor y a un consultorio.
2. 🗺️ Preparación y Rutas
Se realizó la configuración inicial para el nuevo módulo:
- Menú de Navegación: Se añade una nueva opción "Horarios" al menú lateral del administrador, incluyendo un icono de reloj [02:17].
- Vistas: Se crean las vistas necesarias (index, create, edit, delete) dentro de la carpeta admin/horarios [03:02].
- Rutas: Se definen las rutas Resource para el HorarioController, bajo el prefijo admin, preparando las rutas para el CRUD del módulo [06:04].
3. 📋 Listado de Horarios (Index)
El listado de horarios requiere obtener datos de tres tablas simultáneamente.
- Consulta Avanzada: En el método index del HorarioController, se realiza una consulta para traer todos los horarios junto con los datos relacionados, utilizando la carga ansiosa (Eager Loading) [08:16]:
- Horario::with('doctor')->with('consultorio')->get()
Esta técnica permite acceder a los nombres de los doctores y consultorios directamente desde la vista del listado, sin ejecutar múltiples consultas a la base de datos.
4. 📝 Formulario de Creación (Create)
El desarrollo se enfoca en la vista create para permitir al administrador asignar nuevos horarios a los doctores.
A. Lógica del Controlador
Para llenar los selects del formulario, el método create debe obtener todos los registros de los módulos relacionados:
- Se obtienen todos los Doctores (Doctor::all()) [17:18].
- Se obtienen todos los Consultorios (Consultorio::all()) [19:44].
- Ambas variables se pasan a la vista create.blade.php a través de compact.
B. Diseño del Formulario
El formulario recopila cinco campos principales [13:08]:
| Campo | Tipo de Entrada | Fuente de Datos |
|---|---|---|
| Día | select | Opciones manuales (Lunes a Domingo) |
| Hora de Inicio | input type="time" | Entrada de tiempo |
| Hora Final | input type="time" | Entrada de tiempo |
| Doctor | select | Lista de Doctores (mostrando Nombre y Especialidad) [18:25] |
| Consultorio | select | Lista de Consultorios (mostrando Nombre y Ubicación) [20:11] |
El próximo capítulo se centrará en la lógica de almacenamiento (store) para registrar la información del nuevo horario en la base de datos, asegurando que las llaves foráneas se guarden correctamente [24:45].
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! ❤️