55 Create Doctores en el sistema de reservas de citas medicas LARAVEL(PHP-MySql)FullStack

Duración: 15 min
Módulo: 🏥 Infraestructura: Consultorios y Doctores Lección 10 de 14

Descripción

👨‍⚕️ Lección 55: Creación de Doctores

Título del Video: 55 Create Doctores en el sistema de reservas de citas medicas LARAVEL(PHP-MySql) FullStack

1. 📝 Diseño de la Vista de Creación (create.blade.php)

La vista de creación del doctor se implementó copiando y adaptando el formulario de creación del módulo de Secretarias, ya que ambos requieren la creación simultánea de un registro de usuario.

  • Ruta de Envío: El formulario está configurado para enviar los datos por el método POST a la ruta doctores.store [01:54].
  • Campos del Formulario: Los campos recopilados se dividen en dos secciones:

    Campos de Doctor (Tabla doctors)Campos de Usuario (Tabla users)
    NombresCorreo Electrónico
    ApellidosContraseña (y su confirmación)
    Teléfono 
    Licencia Médica 
    Especialidad 

2. ⚙️ Lógica del Controlador (DoctorController.php)

El método store maneja el registro de datos en dos tablas diferentes (users y doctors) mediante las siguientes acciones:

A. Validación de Datos

Se realiza la validación de los campos obligatorios [08:14]:

  • Campos Requeridos: nombres, apellidos, teléfono, licencia_médica y especialidad.
  • Campos de Usuario:
    • Correo electrónico (email): Debe ser único en la tabla users.
    • Contraseña (password): Debe estar confirmada (confirmed).

B. Creación de Usuario

Se crea primero el registro en la tabla users [11:08]:

  • Se instancia el modelo User ($user = new User();).
  • Se asignan el name (Nombres), email (Correo electrónico) y la password.
  • La contraseña se almacena de forma encriptada utilizando Hash::make().
  • El nuevo usuario es guardado ($user->save();).

C. Creación de Doctor

Una vez que el usuario ha sido creado, se utiliza su ID para establecer la relación en la tabla doctors [12:15]:

  • Se instancia el modelo Doctor ($doctor = new Doctor();).
  • Se asigna el user_id ($doctor->user_id = $user->id;) para establecer la llave foránea que relaciona al doctor con sus credenciales.
  • Se asignan los campos específicos del doctor (nombres, apellidos, teléfono, licencia_médica, especialidad).
  • El registro del doctor es guardado ($doctor->save();).

D. Redirección y Mensaje

Finalmente, el usuario es redirigido al listado de doctores (doctores.index) con un mensaje de éxito: "Se registró al doctor de la manera correcta" [13:24].

La prueba final del registro confirma que el nuevo doctor aparece en el listado y que las dos tablas (users y doctors) han sido pobladas correctamente [14:10].

El próximo capítulo continuará con la acción de Visualización (Show) del módulo Doctores.