30 Store Secretarias en el sistema de reserva de citas medicas con LARAVEL(PHP-MySql)FullStack

Duración: 16 min
Módulo: 👩‍💼 Módulo de Secretarias Lección 5 de 9

Descripción

💾 Lección 30: Almacenamiento de Secretarias en Múltiples Tablas (Store)

Título del Video: 30 Store Secretarias en el sistema de reserva de citas medicas con LARAVEL (PHP-MySql) FullStack

Esta lección es fundamental ya que explica la lógica del controlador para manejar un único formulario (create) y guardar la información en dos tablas relacionadas (users y secretarias), asegurando la integridad de los datos.

1. 🛣️ Definición de la Ruta de Envío (Store)

Se habilita la ruta que recibirá los datos del formulario de registro y ejecutará la lógica de guardado:

  • Método: Se define una ruta de tipo Route::post() para enviar la información [01:59].
  • Función Asociada: La ruta apunta a la función store dentro del SecretariaController.

2. 🛡️ Validación de Datos

Antes de guardar, es crucial validar toda la información recibida, especialmente las restricciones de unicidad y seguridad.

  • Campos de Secretaria:
    • nombres y apellidos: Requeridos.
    • ci (Cédula/DNI): Requerido y debe ser unique en la tabla secretarias [07:44].
    • celular, fecha_nacimiento, direccion: Requeridos.
  • Campos de Usuario:
    • email: Requerido, único en la tabla users y debe ser un email válido [09:16].
    • password: Requerido y debe ser confirmed (coincidir con el campo de confirmación) [09:50].

3. 💾 Lógica de Guardado en Dos Tablas

El proceso de registro ocurre de forma secuencial y dependiente, garantizando que ambas tablas se actualicen si el proceso es exitoso.

🔑 Primer Paso: Creación del Usuario (users)

  1. Se instancia un nuevo objeto del Modelo User [10:59].
  2. Se asignan los campos de la cuenta:
    • name: Se le asigna el valor de nombres del formulario (aunque el instructor usa nombres como name para este ejemplo) [11:26].
    • email: El correo electrónico del formulario.
    • password: Se encripta la contraseña usando Hash::make() antes de guardarla [14:13].
  3. Se ejecuta el método $usuario->save() para guardar el registro en la tabla users.

🔗 Segundo Paso: Creación de la Secretaria (secretarias)

  1. Se instancia un nuevo objeto del Modelo Secretaria [11:51].
  2. Establecimiento de la Relación: El campo más importante es user_id. Este campo se asigna utilizando el ID autoincremental que Laravel acaba de generar para el nuevo usuario: $usuario->id [12:15].
  3. Se asignan los campos restantes de la secretaria (nombres, apellidos, CI, celular, etc.).
  4. Se ejecuta el método $secretaria->save() para guardar el registro en la tabla secretarias.

🎉 Redirección Final

Una vez que ambos registros se han creado exitosamente, se redirige al usuario a la vista de listado (admin.secretarias.index) con un mensaje de éxito: "Se registró la secretaria de la manera correcta" [13:48]. El resultado final es un registro en la tabla users con una clave primaria que es referenciada en la tabla secretarias como clave foránea (user_id) [15:00].