我与一个名为users
的表的一对多关系中有一个表videos
。我想在不丢失数据完整性的情况下播种两个表。这就是我在下面所做的:
$factory->define(App\User::class, function (Faker\Generator $faker) {
return [
'name' => $faker->name,
'email' => $faker->email,
'username' => $faker->unique()->userName
];
});
$factory->define(App\Video::class, function(Faker\Generator $faker){
$user = factory(App\User::class)->create();
return [
'title' => $faker->city,
'link' => $faker->domainName,
'user_id' => $user->id,
'description' => $faker->sentence(40)
];
});
所以现在我所要做的就是创建一个VideoTableSeeder
并运行我想要的金额。我觉得我处理它的方式不够好所以我想知道我能做什么更好的方法。特别是,我希望视频不仅仅是用户而不是相同的数量,在我完成的视频中,它们的数量都相同。
答案 0 :(得分:0)
在文档中查看Adding Relations to Models
部分为模型添加关系
您甚至可以将多个模型保存到数据库中。在这个例子中, 我们甚至会将关系附加到创建的模型上。使用时 create方法创建多个模型,一个Eloquent集合 返回实例,允许您使用任何方便的 集合提供的函数,例如:
$users = factory(App\User::class, 3) ->create() ->each(function($u) { $u->posts()->save(factory(App\Post::class)->make()); });