laravel 工厂函数填充假数据,生成的数量与定义的不一致

UserFactory

$factory->define(User::class, function (Faker $faker) {
    $date_time = $faker->date . ' ' . $faker->time;
    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
        'email_verified_at' => now(),
        'password' => '$2y$10$6BixObQ108Da47eYT4RNa.SrgHIiL/8PI/roaj9JKlejscDyiXR0q', // password
        'remember_token' => Str::random(10),
        'created_at' => $date_time,
        'updated_at' => $date_time,
    ];
});

ThreadFactory

$factory->define(Thread::class, function (Faker $faker) {
    return [
        //
        'title' => $faker->sentence,
        'body' => $faker->paragraph,
    ];
});

UserSeeder

$users = factory(User::class,5)->make();
$users->makeVisible(['password','remember_token']);
User::insert($users->toArray());

ThreadSeeder

$faker = app(Faker\Generator::class);
$user_ids = User::all()->pluck('id')->toArray();
$threads = factory(Thread::class,5)->make()->each(
      function ($thread,$index) use ($user_ids,$faker){
          $thread->user_id = $faker->randomElement($user_ids);
      }
  );
Thread::insert($threads->toArray());

数据库中user却有10条数据?

// 下面会产生10条数据
App\\User::all()->count(); 
//这里不应该是5条数据么
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

可能是多运行了一次

4年前 评论
cccyzloong (楼主) 4年前
aidoudou 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!