[英]Faker for Laravel Seeder
我有一个表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
并运行所需的数量。 我觉得我的处理方式还不够好,所以我想知道有什么更好的方法可以做到。 特别是,我希望视频数量多于用户数量,而不是相同数量,因为在我完成这些操作后,视频数量将全部相同。
查阅文档, 将关系添加到模型部分
向模型添加关系
您甚至可以将多个模型持久化到数据库中。 在这个例子中,我们甚至将一个关系附加到创建的模型上。 使用create方法创建多个模型时,将返回一个Eloquent集合实例,使您可以使用集合提供的任何便捷函数,例如每个函数:
$users = factory(App\\User::class, 3) ->create() ->each(function($u) { $u->posts()->save(factory(App\\Post::class)->make()); });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.