Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

262
Views
¿Cuál es la diferencia entre Model Factory y una sembradora DB en Laravel?

¿Cuál es la diferencia entre Model Factory y una sembradora DB en Laravel?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Prefiero ver Sembradoras y Fábricas desde otra perspectiva.

Como lo mencionaron otros, las fábricas de modelos se utilizan con fines de prueba y para completar su base de datos con una gran cantidad de datos falsos. Esto podría usarse para pruebas unitarias y pruebas de rendimiento de su sistema.

Por otro lado, las clases Seeder se utilizan para insertar datos que son cruciales e importantes para que el sistema funcione. Algo así como el superadministrador, roles básicos/permisos de roles en el sistema, países, ciudades y otros datos que pueden no provenir de CRUD

over 4 years ago · Santiago Trujillo Report

0

Investigué para su pregunta y encontré algo simple como a continuación.

Tanto Factory como Seeder se utilizan para generar datos de prueba para la aplicación.


Factory: al usar fábricas, puede crear fácilmente datos de prueba para su aplicación laravel basada en Model. En fábrica estamos usando otra clase como Faker para generar datos falsos fácilmente.

En fábrica también podemos generar datos relacionados con la relación, mientras que en db seeder no podemos.

 factory(App\User::class, 50)->create()->each(function ($user) { $user->posts()->save(factory(App\Post::class)->make()); });

Otro ejemplo de fábrica:

 use Illuminate\Support\Str; use Faker\Generator as Faker; $factory->define(App\User::class, function (Faker $faker) { return [ 'name' => $faker->name, 'email' => $faker->unique()->safeEmail, 'email_verified_at' => now(), 'password' => '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', // secret 'remember_token' => Str::random(10), ]; });

Seeder: al usar seeder puede crear datos de prueba basados en el nombre de su tabla. Como abajo.

 <?php use Illuminate\Support\Str; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\DB; class DatabaseSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { DB::table('users')->insert([ 'name' => Str::random(10), 'email' => Str::random(10).'@gmail.com', 'password' => bcrypt('secret'), ]); } }

Puedes consultar aquí para más información:

https://laravel.com/docs/5.7/seeding#using-model-factories

https://laravel.com/docs/5.7/database-testing#writing-factories

over 4 years ago · Santiago Trujillo Report

0

El sembrador de bases de datos se utiliza para llenar tablas con datos.

Las fábricas de modelos son un lugar centralizado conveniente para definir cómo se deben completar sus modelos con datos falsos.

En la clase seeder, aprovecharía las fábricas modelo, y lo más probable es que las fábricas modelo usen otra biblioteca para generar datos falsos aleatorios, como fzaninotto/faker.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!