Los comandos Artisan nos facilitan la creación de clases y código en la aplicación y Laravel 5.5 llega con uno nuevo: make:factory
con el cual podemos crear el factory para un modelo de Eloquent. Veamos cómo trabajar con él:
Notas
Por Clemir Rondón.
El Model Factory es la manera como podemos alimentar la base de datos de nuestra aplicación con datos ficticios, que sirven de mucha ayuda para hacer pruebas en el navegador o cuando estamos escribiendo pruebas automatizadas.
Si quieres aprender más puedes revisar:
- Paginación y carga de registros con seeders y model factories en Laravel
- Migraciones, seeders y model factories
- Model factories en Laravel
Su creación hasta Laravel 5.4 la hacíamos manualmente, es decir, debíamos escribir la definición de un factory agregando los campos del modelo en el archivo database/factories/ModelFactory.php (aunque también podíamos crear archivos diferentes por cada factory y Laravel los reconocería).
Ahora en Laravel 5.5 contamos con un nuevo comando Artisan make:factory
que nos creará un archivo con el factory para un modelo.
Podemos ver cual es la definición del comando ejecutando:
php artisan help make:factory
Lo que nos indica que acepta como argumento el nombre del factory como por ejemplo:
php artisan make:factory ProfilesFactory
En caso que ya exista el modelo de Eloquent relacionado al factory que estás creando puedes especificarlo como argumento de esta manera:
php artisan make:factory ProfilesFactory --model UserProfile
De esa manera autocompleta por nosotros el nombre del modelo en la definición del factory.
Por otro lado, también fue añadida la creación de un factory a partir del comando make:model
, es decir, cuando creemos un modelo podemos indicarle a Laravel que cree el factory relacionado usando la opción --factory
, de esta manera:
php artisan make:model Post --factory
Si te interesa ver los commits al framework que añadieron este comando: a6ffd y d58be y el Pull Request #19985
Material relacionado
- Convenciones de nombres de Eloquent en Laravel
- Uso de model factories para crear registros con relaciones en Laravel 5.3
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.
Lección anterior Nuevo comando migrate:fresh en Laravel 5.5 Lección siguiente Flujo de desarrollo con PHPUnit y base de datos en Laravel 5.5 (RefreshDatabase)