使用角色创建和更新来处理新用户的最简洁方法是什么? 我得到了具有关系的Users和Roles表:$ this-> belongsToMany(Role :: class)。 当我创建一个新用户时,我想以相同的形式分配角色,但角色将被添加到不同的表中。同样,当我更新用户时,也许我会添加一个额外的角色,或者我可能需要删除一些角色,在更新场景中,我需要查看表中有哪些角色并将其与表单同步数据。 以下是更新用户和角色信息的功能。用户更新有效,但角色更新不起作用。 最干净的代码是什么: 创建具有一个或多个角色的新用户,并更新用户信息并同步角色信息。
public function update($id, Requests\CreateUserRequest $request) {
$user=User::findOrFail($id);
$user->name=$request->name;
$user->email=$request->email;
if($request->resetPassword)
{
$user->password=null;
//send email to user to reset the password
}
$user->save();
$roles=Role::sync($request->roles);
$roles->user()->update($user->id);
//$user->update($request->all());
flash('Great!! User was updated', 'success');
return redirect('users');
}
答案 0 :(得分:1)
要更新角色,您可以尝试:
$user->save();
$user->roles()->sync($request->roles);
它适用于更新和创建。