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