38 Como llamar desde un seeder a un factory de pacientes en LARAVEL(PHP-MySql) FullStack
Duración: 14 minDescripció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:
- Creación del Seeder: Se usa el comando php artisan make:seeder PacienteSeeder [02:47].
- 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).
- 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.
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! ❤️