92 Mostrar Mensajes de Validación de las Reservas de Citas Sistema con LARAVEL(PHP-MySql)FullStack

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

Descripción

💬✨ Lección 92: Muestra Elegante de Mensajes de Validación y Errores de Reserva

Esta lección se enfoca en mejorar la experiencia de usuario (UX) al gestionar los errores y validaciones de reserva. En lugar de simplemente validar y cerrar el modal (lo cual genera incertidumbre), se modifica el controlador para redireccionar correctamente con mensajes y forzar la reapertura automática del modal al ocurrir un error.

1. ⚙️ Ajuste del EventController para Mensajes

Se modifica la lógica en el controlador para que, en caso de que fallen las validaciones de disponibilidad o duplicidad, el sistema no retorne una excepción de validación que cierra el modal, sino que redirija elegantemente:

  • Redirección con Flash Data: En lugar de lanzar una excepción, se utiliza return redirect()->back()->with(['...']) para regresar a la vista anterior y enviar los mensajes de error como datos de sesión flash [01:32].
  • Mensajes de Alerta: Se envían dos tipos de mensajes en el array de la sesión flash:
    • Mensaje SweetAlert2: Se utiliza la variable mensaje con el contenido del error (ej. "Ya existe una reserva...") y el icono error para el SweetAlert genérico [02:40].
    • Mensaje de Validación del Modal: Se utiliza la variable hora_reserva (o un nombre de campo de formulario) para contener el mensaje de error específico. Este mensaje se usará para abrir el modal [03:59].

2.  Reapertura Automática del Modal (JavaScript)

Se añade un bloque de JavaScript en la vista principal (index.blade.php) para detectar la existencia de un mensaje de error y, en consecuencia, abrir el modal de forma automática.

  • Lógica de Detección: Un script pregunta: if (session()->has('hora_reserva')) [05:24].
  • Apertura Forzada: Si se detecta el mensaje de sesión, se ejecuta el comando de JavaScript para forzar la apertura del modal de Bootstrap ($('#exampleModal').modal('show')) [06:05].

Resultado: Flujo de Errores Mejorado

Con estos cambios, cuando el usuario intenta registrar una cita no válida:

  1. Aparece un SweetAlert en pantalla notificando el error (ej. "El doctor no está disponible en ese horario") [07:45].
  2. El formulario Modal se reabre automáticamente con todos los datos previamente ingresados [07:54].
  3. El mensaje de error también se muestra dentro del modal, junto al campo de hora o doctor, proporcionando retroalimentación inmediata sobre la acción que debe corregir [08:29].

3. ➡️ Próximo Paso

Con todas las validaciones (fecha, hora, disponibilidad, y duplicidad) y el flujo de errores mejorados, la siguiente lección se centrará en obtener la información de todos los eventos (events) almacenados en la base de datos para mostrarlos dentro del componente FullCalendar en la vista del usuario [10:48].