繁体   English   中英

拉威尔(Laravel)播种者

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM