93 Cargar Reservas de Citas Medicas en el Calendario del Sistema con LARAVEL(PHP-MySql) FullStack

Duración: 10 min
Módulo: 🗓️ Reserva de Citas y FullCalendar Lección 8 de 14

Descripción

🗓️ Carga de Reservas de Citas en el Calendario FullCalendar

Esta lección se centra en la etapa final del proceso de reserva: obtener los datos de citas médicas guardados en la base de datos (tabla events) y mostrarlos de forma dinámica en el componente FullCalendar de la vista principal.

1. 💾 Recuperación y Envío de Eventos (Controlador)

Se modifica el método index del controlador principal (AdminController) para extraer todos los eventos registrados y pasarlos a la vista.

  • Consulta a la Base de Datos: Se declara una variable $eventos que recupera todos los registros del modelo Event utilizando Event::all() [01:48].
  • Envío a la Vista: La variable $eventos es enviada a la vista (admin.index) usando el método compact() para que esté disponible en el frontend [02:04].

2. 🔄 Iteración y Renderizado en la Vista (FullCalendar)

Se utiliza un bucle foreach dentro del bloque de configuración de JavaScript del FullCalendar para generar los eventos dinámicamente.

  • Bucle foreach: Se itera sobre la colección $eventos recibida desde el controlador [02:43].
  • Mapeo de Propiedades: Por cada evento, se mapean los campos de la base de datos a las propiedades requeridas por FullCalendar:
    • title: Se utiliza el campo title del evento, que contiene la hora y la especialidad [03:25].
    • start: Se utiliza el campo start del evento (que ahora incluye fecha y hora) para definir el inicio de la cita [04:33].
    • end: Se utiliza el campo end del evento (que ahora incluye fecha y hora) para definir el final de la cita [05:15].
    • color: Se mantiene el color predeterminado (red) [06:17].

Resultado

Una vez implementado, el sistema comienza a cargar todas las reservas de citas médicas de la base de datos en el calendario, donde se visualizan con su título y color correspondiente. Esto confirma que el flujo de registro y validación está completo y funcional [07:06].

3. ➡️ Próximo Paso: Filtrado por Consultorio

El próximo objetivo es mejorar la visualización del sistema de reservas creando calendarios específicos para cada consultorio o especialidad. Esto implicará el uso de AJAX para cargar de forma dinámica los eventos de un consultorio específico al hacer clic sobre él (ej. mostrar solo las citas de Pediatría) [09:17].