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

Add multiple permissions to one role entrust Role-based Permissions for Laravel 5


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

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

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 测试的后端。
那么最好的原因是什么?并感谢您的帮助。

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

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

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

然后您可以将 $permissions 集合传递给 attachPermissions() 方法,该方法接受 Eloquent 模型数组:

$role->attachPermissions($permissions);