我有一个表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并运行我想要的数量。我觉得我处理它的方式不够好,所以我想知道我能做的更好的方法。特别是,我希望视频比用户更多,而不是同样的数量,在我做过的视频中,它们都是相同的数量。
发布于 2016-01-28 15:34:03
查看在模型中添加关系部分的文档
在模型中添加关系 您甚至可以将多个模型持久化到数据库。在本例中,我们甚至会将一个关系附加到创建的模型。当使用create方法创建多个模型时,将返回一个雄辩的集合实例,允许您使用集合提供的任何方便函数,例如:
$users = factory(App\User::class, 3) ->create() ->each(function($u) { $u->posts()->save(factory(App\Post::class)->make()); });
https://stackoverflow.com/questions/35064597
复制相似问题