38 Como llamar desde un seeder a un factory de pacientes en LARAVEL(PHP-MySql) FullStack

Duración: 14 min
Módulo: 🤒 Gestión de Pacientes Lección 4 de 11

Descripción

🏭 Lección 38: Invocando Factory desde un Seeder para Pacientes

Título del Video: 38 Como llamar desde un seeder a un factory de pacientes en LARAVEL (PHP-MySql) FullStack

Esta lección finaliza la configuración del PacienteFactory y explica cómo usar un Seeder (sembrador) para invocar esta fábrica, generar datos masivos y poblar la tabla de pacientes con información falsa para pruebas.

🛠️ Finalización del PacienteFactory

El instructor termina de definir la generación de datos falsos para los campos restantes de la tabla pacientes:

  • Dirección: Se utiliza $this->faker->address() [00:13].
  • Grupo Sanguíneo: Se emplea $this->faker->randomElement([...]) para seleccionar aleatoriamente un valor de la lista de tipos de sangre (A+, A-, B+, B-, O+, O-) [00:19].
  • Alergias y Observaciones: Para estos campos de texto libre, se utiliza lógica condicional y métodos que aseguren que el resultado sea una cadena de texto (string), como $this->faker->words(3, true) y $this->faker->optional()->text(200), para evitar errores de tipo en la base de datos [01:17].
  • Contacto de Emergencia: Se vuelve a usar $this->faker->phoneNumber() [01:46].

🚀 Creación e Implementación del Sembrador

Una vez que la fábrica está completa, se crea el archivo sembrador que se encargará de ejecutar la creación de datos:

  1. Creación del Seeder: Se usa el comando php artisan make:seeder PacienteSeeder [02:47].
  2. Lógica de Invocación: Dentro del método run() de PacienteSeeder, se llama a la fábrica del modelo Paciente, se especifica la cantidad de registros a generar con el método count(), y finalmente se ejecuta la creación con create() [03:35].
    • Ejemplo de código: Paciente::factory()->count(200)->create(); (El instructor prueba primero con 50 y luego con 200).
  3. Llamada al Seeder Principal: Para que Laravel ejecute este nuevo sembrador, se añade una llamada a PacienteSeeder en el archivo principal DatabaseSeeder.php [04:41].
    • Nota: Es recomendable comentar las líneas de siembra de usuarios o secretarias manuales en el DatabaseSeeder al usar db:seed, para evitar violaciones de unicidad de claves primarias.

✅ Resultado Final

Tras ejecutar el comando php artisan db:seed, la base de datos se actualiza exitosamente [11:11].

  • El sistema genera y registra 200 pacientes en la tabla pacientes [12:10].
  • Todos los registros cuentan con datos generados de forma realista y cumplen con las restricciones de unicidad (Cédula, Número de Seguro, Correo) definidas en la migración [12:28].

Con esto, el módulo de pacientes ya tiene una base de datos robusta de prueba para continuar con el desarrollo del CRUD.