A menudo vuelvo a la documentación de Laravel cada vez que necesito crear nuevas fábricas y sembradoras para mis proyectos, ya sean ejercicios de aprendizaje, proyectos de hobby o aplicaciones del mundo real ( aburrido haciendo las mismas acciones cada vez). Para facilitar este proceso, he decidido crear una guía a la que pueda consultar cuando sea necesario, ahorrando tiempo y evitando la necesidad de buscar en documentación extensa. Si esta guía ayuda a alguien más, ¡sería genial!
Supongamos que tenemos una relación Usuario/Publicaciones, lo que significa que cada usuario puede tener una o más publicaciones, y cada publicación pertenece a un usuario.
¿Qué es una Fábrica?
A Factory en Laravel es una clase para generar datos de prueba para su aplicación. Esto es útil para el desarrollo local y los entornos de puesta en escena, y proporciona muchos beneficios. Laravel te permite crear una fábrica para cada modelo que tengas.
¿Qué son las sembradoras?
Los sembradores en Laravel se utilizan para llenar su base de datos con datos usando clases de semillas, lo cual es especialmente útil para fines de prueba.
Generando Nuevas Fábricas
Para crear una nueva fábrica, ejecute el siguiente comando:
php artesano make:factory PostFactory
Encontrará su clase de fábrica en el directorio base de datos/fábricas. A continuación se muestra un ejemplo de cómo definir su fábrica:
public function definition(): array { return [ 'title' => $this->faker->sentence, 'content' => $this->faker->paragraph, 'user_id' => User::factory(), ]; }
Generando Sembradoras
Para crear una nueva sembradora, ejecute el siguiente comando:
php artesano make:seeder PostSeeder
Encontrará la clase sembradora en el directorio base de datos/seeders. Aquí hay un ejemplo de la función de ejecución dentro de esta clase:
public function run(): void { Post::factory() ->count(20) ->create(); }
En el mismo directorio, encontrará la clase DatabaseSeeder. Asegúrate de que incluya todas tus sembradoras:
public function run(): void { // \App\Models\User::factory(10)->create(); // \App\Models\User::factory()->create([ // 'name' => 'Test User', // 'email' => '[email protected]', // ]); $this->call([ PostSeeder::class, .., .. ]); }
Ejecución de migraciones y inicialización de la base de datos
Primero, ejecuta las migraciones de la base de datos:
php migración artesanal
Luego, inicializa la base de datos:
php db artesanal:semilla
Ahora tienes los datos de prueba en su lugar. ¡Disfrutar!
¡Publicado originalmente en mi blog!
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3