在Entrust中分配新角色

4 php user-roles laravel laravel-4

作为我的"批准"流程的一部分,我希望管理员根据需要为用户分配不同的角色.

我想"分离"用户当前的角色并添加一个新角色.

$id = Input::get('submit');
$user = User::where('id','=', $id)->first();
$user->attachRole(2);

$user->save();
Run Code Online (Sandbox Code Playgroud)

上面的代码获取了我想要重新分配角色的用户ID,然后是分配了新角色的attachRole,但是我无法删除之前的代码.

但是,它不会删除用户之前分配给它的角色.

$user->detachRole(USER ID HERE);
Run Code Online (Sandbox Code Playgroud)

似乎不起作用.

唯一的问题是,如果它在'Role'表中,我可以使用$ user-> roles() - > delete(类似的东西),其中角色的用户分配在'assigned_roles'表中.

任何帮助将非常感激.

Joh*_*ohn 9

这是一个可用于保存角色的示例函数,它接受一个角色ID数组:

 /**
 * Save roles inputted from multiselect
 * @param $inputRoles
 */
public function saveRoles($inputRoles)
{
    if(! empty($inputRoles)) {
        $this->roles()->sync($inputRoles);
    } else {
        $this->roles()->detach();
    }
}
Run Code Online (Sandbox Code Playgroud)