37 Como Crear Pacientes con Factory en LARAVEL(PHP-MySql) FullStack
Duración: 10 minDescripción
🏭 Lección 37: Creación de Pacientes con Factory en LARAVEL
Título del Video: 37 Como Crear Pacientes con Factory en LARAVEL (PHP-MySql) FullStack
Esta lección explica cómo utilizar Factory (Fábrica) y Faker en Laravel para generar grandes volúmenes de datos de pacientes de forma automática y con información falsa, lo cual es esencial para realizar pruebas de rendimiento y funcionalidad en el sistema.
🎯 La Necesidad de las Factories
El uso de Factories soluciona el problema de la siembra manual de datos (Seeding). Si un campo requiere ser único (como la Cédula de Identidad o el Correo Electrónico), crear manualmente 50 o 100 registros se vuelve tedioso y propenso a errores de duplicidad. Factory permite generar datos falsos de manera eficiente y automática.
🛠️ Implementación del PacienteFactory
1. Creación de la Factory
El primer paso es crear el archivo Factory utilizando el comando de Artisan:
Bash
php artisan make:factory PacienteFactory
Esto genera un archivo dentro del directorio database/factories.
2. Definición de Atributos Falsos
Dentro del método definition() de PacienteFactory, se define cómo se generará la información para cada columna de la tabla pacientes utilizando la librería Faker:
- Nombres y Apellidos: Se utilizan métodos simples de Faker para generar nombres y apellidos realistas:
- Para nombres: $this->faker->name()
- Para apellidos: $this->faker->lastName()
- Campos Únicos (CI, Número de Seguro, Correo): Para garantizar que estos datos no se repitan, se utiliza el modificador unique() antes del método de Faker:
- CI y Número de Seguro: Se generan números aleatorios en un formato específico utilizando numerify para controlar la cantidad de dígitos y asegurar la unicidad. Por ejemplo, para 8 dígitos: $this->faker->unique()->numerify('########').
- Correo Electrónico: Se utiliza $this->faker->unique()->safeEmail() para generar correos que se pueden usar de forma segura en entornos de desarrollo.
- Fechas y Género: Se generan datos con restricciones específicas:
- Fecha de Nacimiento: Se utiliza $this->faker->date() y se le puede pasar un límite máximo, por ejemplo, date('Y-m-d', '2000-01-01'), para que no genere pacientes recién nacidos.
- Género: Se utiliza randomElement() para elegir aleatoriamente entre las opciones permitidas, como ['m', 'f'].
- Otros Datos:
- Celular: $this->faker->phoneNumber()
- Dirección: $this->faker->address()
Este Factory queda listo para ser llamado desde un Seeder en la próxima lección, donde se especificará la cantidad de pacientes (por ejemplo, 500) que se desean insertar en la base de datos con un solo comando.
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! ❤️