作为我的批准的一部分'进程,我希望管理员按需为用户分配不同的角色。
我想'分离'用户当前的角色并添加一个新角色。
$id = Input::get('submit');
$user = User::where('id','=', $id)->first();
$user->attachRole(2);
$user->save();
上面的代码获取了我想要重新分配角色的用户ID,然后是分配了新角色的attachRole,但是我无法删除之前的代码。
但是,它不会删除用户以前分配给它的角色。
$user->detachRole(USER ID HERE);
似乎不起作用。
唯一的问题是,如果它出现在'角色' table,我可以使用$ user-> roles() - > delete(类似的东西),其中角色的用户分配在" assigned_roles'表
非常感谢任何帮助。
答案 0 :(得分:9)
以下是一个可用于保存角色的示例函数,它接受一组角色ID:
/**
* Save roles inputted from multiselect
* @param $inputRoles
*/
public function saveRoles($inputRoles)
{
if(! empty($inputRoles)) {
$this->roles()->sync($inputRoles);
} else {
$this->roles()->detach();
}
}