Factories
Comprar curso

95. Factories

En este capítulo, exploraremos el uso de las fábricas de modelos en Laravel. Las fábricas de modelos son una herramienta útil para generar datos falsos de forma automatizada en pruebas y seeding de la base de datos. Aprenderemos cómo crear una fábrica de modelos utilizando el comando make:factory de Artisan y cómo definir atributos predeterminados utilizando la biblioteca Faker. Al finalizar este capítulo, estarás preparado para aprovechar al máximo las fábricas de modelos en Laravel y simplificar la generación de datos falsos en tu aplicación.


1 comentarios

Inicia sesión para comentar

Comentarios:

  • Victor Arana Flores

    Victor Arana Flores hace 9 meses

    Cuando se trabaja en Laravel, es común que necesites insertar registros de prueba en tu base de datos. En lugar de ingresar manualmente los valores de cada columna, Laravel ofrece las fábricas de modelos (model factories), que te permiten definir atributos predeterminados para tus modelos Eloquent. Esto facilita la generación de datos falsos para pruebas y la inicialización de la base de datos.

    Para crear una fábrica de modelos en Laravel, puedes utilizar el comando make:factory de Artisan. Por ejemplo, para crear una fábrica para el modelo Post, ejecuta el siguiente comando:

    php artisan make:factory PostFactory --model=Post

    Esto generará un archivo llamado PostFactory.php en el directorio database/factories.

    Dentro del archivo PostFactory.php, puedes definir los atributos predeterminados para tu modelo. Puedes utilizar la clase Faker para generar datos falsos. Aquí tienes un ejemplo:

    use App\Models\Post;
    use Faker\Generator as Faker;
    use Illuminate\Database\Eloquent\Factories\Factory;
    
    class PostFactory extends Factory
    {
        protected $model = Post::class;
    
        public function definition()
        {
            $faker = Faker::create();
    
            return [
                'title' => $faker->sentence,
                'content' => $faker->paragraph,
            ];
        }
    }
    

    En este ejemplo, utilizamos el método sentence() de Faker para generar un título ficticio y el método paragraph() para generar contenido ficticio.

    Utilizar fábricas en seeders o pruebas

    Una vez que hayas definido tu fábrica, puedes utilizarla en seeders o pruebas para crear registros falsos. Por ejemplo, en un seeder, puedes crear 10 posts ficticios de la siguiente manera:

    use Illuminate\Database\Seeder;
    use App\Models\Post;
    
    class DatabaseSeeder extends Seeder
    {
        public function run()
        {
            Post::factory()->count(10)->create();
        }
    }
    

    En este caso, utilizamos el método factory() en conjunto con count() para crear 10 instancias del modelo Post utilizando la fábrica PostFactory definida anteriormente.