Laravel 在插入新记录时将数据添加到数据透视表 table
Laravel adding data to pivot table while inserting new record
我有三个table,
roles(id, name);
users(id, email, password);
user_role(id, user_id, role_id);
在这种情况下,我有用户 table 与具有多对多关系的角色 table 相关联。
我有两个 eloquent 模型作为
Role
+users(){
belongsToMany('User')
}
User
+roles(){
belongsToMany('Role')
}
现在,问题是我何时想要添加新用户以及我想分配给用户的角色 ID。如何使用 Laravel 最佳实践插入值以枢轴 table?
我现有的代码是:-
$roles = Input::get('roles'); // arrays of role ids
$user = new User();
$user->username = Input::get('username');
$user->password = Hash::make(Input::get('password'));
$user->save();
下一步做什么???
真的全部described in the documentation.
无论如何,这是您的操作方式:
$user = new User();
$user->username = Input::get('username');
$user->password = Hash::make(Input::get('password'));
$user->save();
$user->roles()->attach($roles);
重要的部分是您必须在附加(使用 attach()
)角色之前保存用户,否则用户没有要在数据透视表中使用的 ID table .
我有三个table,
roles(id, name);
users(id, email, password);
user_role(id, user_id, role_id);
在这种情况下,我有用户 table 与具有多对多关系的角色 table 相关联。
我有两个 eloquent 模型作为
Role
+users(){
belongsToMany('User')
}
User
+roles(){
belongsToMany('Role')
}
现在,问题是我何时想要添加新用户以及我想分配给用户的角色 ID。如何使用 Laravel 最佳实践插入值以枢轴 table?
我现有的代码是:-
$roles = Input::get('roles'); // arrays of role ids
$user = new User();
$user->username = Input::get('username');
$user->password = Hash::make(Input::get('password'));
$user->save();
下一步做什么???
真的全部described in the documentation.
无论如何,这是您的操作方式:
$user = new User();
$user->username = Input::get('username');
$user->password = Hash::make(Input::get('password'));
$user->save();
$user->roles()->attach($roles);
重要的部分是您必须在附加(使用 attach()
)角色之前保存用户,否则用户没有要在数据透视表中使用的 ID table .