我有两个表,分别是用户和组。他们有多对多的关系。实际上,我想存储哪个用户组中的组信息和用户角色。所以我创建了一个迁移表,group_user_table ......
public function up() {
Schema::create('group_user', function (Blueprint $table) {
$table->integer('user_id')->unsigned();
$table->integer('group_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');
$table->foreign('group_id')->references('id')->on('groups');
});
}
我的种子如何:
$groupQuantity = 26;
$userQuantity = 20;
factory(User::class, $userQuantity)->create();
factory(Group::class, $groupQuantity)->create()->each(function ($foo) {
$foo->users()->sync(
User::all()->random(rand(1,20))
);
});
它完美无缺,但我想在pivot_table中添加用户角色,如:
$table->integer('type')->unsigned()->comment('0- Owner, 1- Admin, 2- User');
我可以添加迁移但我不知道种子? (它给出了一个错误,当我尝试播种时,类型没有默认值。)
或者我应该将第二个数据透视表用于用户角色?
Laravel 5.4 ......
答案 0 :(得分:1)
您可以通过向其添加数据库功能来修改group_user的播种机。
for($i=0;$i<rand(0,10),$i++) {
$user = factory(User::class, $userQuantity)->create();
factory(Group::class, $groupQuantity)->create()->each(function ($foo) {
DB::table('group_user')->insert([
[
'user_id' => $user->id,
'group_id' => $foo->id,
'type' => rand(0,2)
],
]);
});
}