问答

laravel 使用工厂函数填充数据,假数据的数量不一致

作者:admin 2021-06-21 我要评论

UserFactory $factory-define(User::class, function (Faker $faker) { $date_time = $faker-date . ' ' . $faker-time; return [ 'name' = $faker-name, 'email...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

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条数据?

App\\User::all()->count(); // 10
###

每次5条,seed执行两次就是10条

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • laravel 使用工厂函数填充数据,假数据

    laravel 使用工厂函数填充数据,假数据

  • Mysql题目表跟答案表,应该怎么设计,

    Mysql题目表跟答案表,应该怎么设计,

  • 根据id查找所在数组项的位置

    根据id查找所在数组项的位置

  • nginx中配置的X-Forwared-For拿到的是

    nginx中配置的X-Forwared-For拿到的是

腾讯云代理商
海外云服务器