【问题标题】:Assign a new role in Entrust在 Entrust 中分配新角色
【发布时间】:2014-05-11 04:56:57
【问题描述】:

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

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

$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(类似的东西),其中用户对角色的分配在“分配角色的表。

任何帮助将不胜感激。

【问题讨论】:

    标签: php laravel laravel-4 user-roles


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢你,约翰!终于,我不再失眠了。
    猜你喜欢
    • 2015-07-09
    • 1970-01-01
    • 2015-09-30
    • 2019-10-14
    • 2014-05-08
    • 2017-02-05
    • 2017-02-06
    • 2012-06-29
    • 2016-07-28
    相关资源
    最近更新 更多