向一个角色添加多个权限委托Laravel 5的基于角色的权限

时间:2016-09-08 10:20:52

标签: php json laravel permissions entrust


我只是将委托添加到Laravel项目中,我可以创建角色,创建权限,attachPermission,assignRole。

现在我想将多个权限附加到一个角色,例如我将此权限[create-user,edit-user,remove-user,update-user]添加到superAdmin Role。

public function attachPermission(Request $request){
        $role = Role::where('name', '=', $request->input('role'))->first();
        $permission = Permission::where('name', '=', $request->input('name'))->first();
        foreach ($permission as $pers){
            $role->attachPermissions($pers);
        }
            return response()->json("done");
    }

这段代码取了最后的权限,这是我用Postman测试的后端 那么最好的原因是什么呢?并感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

首先检索您希望分配给角色的权限:

$permissionNames = ['name1', 'name2', 'name3'];

$permissions = Permission::whereIn('name', $permissionNames)->get();

然后您可以将$permissions集合传递给接受一系列Eloquent模型的attachPermissions()方法:

$role->attachPermissions($permissions);