我有以下表格 用户 , 角色和数据透视表 role_user 具有以下表结构
用户
角色
角色_用户
<?php
class PivotTableSeeder extends Seeder {
public function run()
{
// Seeds the roles table
DB::table('roles')->delete();
DB::table('role_user')->insert(array(
array('user_id' => 1, 'role_id' => 1),
array('user_id' => 2, 'role_id' => 2),
array('user_id' => 3, 'role_id' => 1),
array('user_id' => 3, 'role_id' => 3),
array('user_id' => 3, 'role_id' => 5)
));
}
}
数据透视表是使用
DB select 播种的
有没有更好的方法来播种表,包括数据透视表?
我在想也许当我为我的用户表做种子时,它也会为 role_user 表做种子,而不是手动将数据插入数据透视表。
例子:
角色
用户
角色_用户
编辑
我正在使用这个 Eloquent 为我的用户表做种。
无论如何,在为 User 播种时,role_user 也会更新吗?
User::create(array(
'id' => '1',
'username' => 'user',
'password' => 'pass'
));
User::create(array(
'id' => '2',
'username' => 'user2',
'password' => 'pass2'
));
请您参考如下方法:
你可以试试这个(假设你已经播种了角色):
$user = User::create(['id' => '1', 'username' => 'user', 'password' => 'pass']);
$user->roles()->sync([1,2]); // array of role ids
$user = User::create(['id' => '2', 'username' => 'user2', 'password' => 'pass2']);
$user->roles()->sync([3,4]); // array of role ids
我用过
[]而不是
array() , 如果您的
PHP早于
ver-5.4那么你应该使用
array() .




