我有3张桌子
User(id,name,email)
Role(id,rolename)
role_user(user_id,role_id)
在角色表中,我有以下数据;
id rolename
1 admin
2 user
在这种情况下,我将users表与多个关系的角色表相关联。
我有一个雄辩的模型
UserModel
user_roles(){
belongsToMany('Role')
}
现在我想在创建用户时在role_user表中保存数据。我在下拉列表中有角色。
我正在使用以下查询
$user = new User();
$user->username = $data->username;
$user->email= $data->email
$user->save();
它完全将用户保存在用户表中,但我还想将数据保存在user_role表中。
你能帮助我如何保存这个吗?
答案 0 :(得分:2)
创建用户后使用attach()
方法:
$user->roles()->attach($roleId);
答案 1 :(得分:0)
在用户模型中:
public function roles()
{
return $this->belongsToMany(Role::class);
}
在角色模型中:
public function users()
{
return $this->belongsToMany(User::class);
}
我假设您将角色作为数组传递,然后在您的控制器中,您可以使用以下内容:
public function store(Request $request)
{
//return $request->roles;
$this->validate($request, [
'name' => 'required|string',
'email' => 'required|email|unique:users',
'password' => 'required|confirmed'
]);
$user = new User();
$user->name = $request->name;
$user->email = $request->email;
$user->password = $request->password;
$user->save();
$user->roles()->attach($request->roles);
return redirect()->route('backend.users');
}