98 Dashboard del Doctor en el Sistema con LARAVEL(PHP-MySql) FullStack
Duración: 20 minDescripción
🧑⚕️📅 Lección 98: Implementación del Dashboard del Doctor
Esta lección se centra en la construcción del Dashboard específico para el Doctor, cuyo objetivo principal es mostrar un listado (tabla) con solo las citas médicas que tiene asignadas, asegurando que cada médico vea únicamente la información relevante para su trabajo.
1. ⚙️ Obtención del ID del Doctor Autenticado
El paso más crítico es obtener el ID del doctor de la tabla doctores, que es diferente al ID del usuario autenticado en la tabla users.
- Relación Clave: Se accede al ID del doctor a través de la relación definida en el modelo User de Laravel [05:41].
- Sintaxis de Acceso: La lógica utiliza la siguiente sintaxis en el Blade para obtener este ID único: Auth::user()->doctor->id [07:22].
- Verificación: Este ID (por ejemplo, 1) se utiliza para filtrar las reservas en el frontend [07:29].
2. 📝 Construcción de la Tabla de Reservas
Se añade una nueva sección en la vista admin/index.blade.php para el Calendario de Reservas, utilizando una tabla compatible con DataTables para mostrar el historial de citas del médico [01:27].
| Columna | Origen del Dato | Notas |
|---|---|---|
| Usuario | $evento->user->name | Nombre del paciente que realizó la reserva, accedido a través de la relación User [13:00]. |
| Fecha de Reserva | $evento->start | Se usa la librería Carbon dentro del Blade para formatear y mostrar solo la fecha [14:16]. |
| Hora de Reserva | $evento->start | Se usa Carbon para formatear y mostrar solo la hora [14:36]. |
Nota: Se eliminan las columnas de "Acciones" (como Editar/Eliminar) ya que el rol del doctor es solo visualizar las citas [15:15].
3. 🎯 Lógica de Filtrado Condicional (Frontend)
Para garantizar que el doctor solo vea sus citas, se implementa un filtro condicional dentro del bucle @foreach en la vista Blade.
- Contexto: El bucle itera sobre todos los eventos disponibles en la base de datos (independientemente del doctor) [15:56].
Validación Condicional: Se utiliza una directiva @if para verificar si el ID del doctor autenticado coincide con el ID del doctor registrado en el evento actual:
Blade
@if (Auth::user()->doctor->id == $evento->doctor_id) {{-- Fila de la tabla para este evento --}} @endif
- Resultado: Solo las filas que cumplan con esta condición se imprimen y son visibles en el dashboard, logrando que cada doctor solo vea sus propias citas [17:36].
➡️ Próximo Paso
Aunque el filtrado por doctor ya funciona, se necesita implementar la restricción de acceso con permisos de Laravel para evitar que otros roles (como un usuario normal) puedan acceder accidentalmente a esta vista y generen errores [18:51].
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! ❤️