在Entrust中分配新角色

时间:2014-03-31 17:47:31

标签: php laravel laravel-4 user-roles

作为我的批准的一部分'进程,我希望管理员按需为用户分配不同的角色。

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

$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'表

非常感谢任何帮助。

1 个答案:

答案 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();
    }
}