将权限附加到Laravel 5中的角色

将权限附加到Laravel 5中的角色,laravel,permissions,roles,Laravel,Permissions,Roles,我使用romanbican/roles包来管理我的角色/权限。现在,我有了一个特定的角色(例如,admin),它拥有权限create\u user,edit\u user,delete\u user。我为此使用了复选框,因此如果我未选中权限(例如删除用户),此权限将从管理员角色中分离。这是我使用的软件包的链接。有一种方法叫做attachRole()或attachPermission和detachRole或detachPermission。需要你们的帮助,伙计们,关于这件事我已经忙了两天了,所以我

我使用romanbican/roles包来管理我的
角色/权限
。现在,我有了一个特定的角色(例如,
admin
),它拥有权限
create\u user
edit\u user
delete\u user
。我为此使用了复选框,因此如果我
未选中
权限(例如
删除用户
),此权限将
管理员
角色中分离。这是我使用的软件包的链接。有一种方法叫做
attachRole()
attachPermission
detachRole
detachPermission
。需要你们的帮助,伙计们,关于这件事我已经忙了两天了,所以我想是时候问一下了:)

我真的不完全理解你们的问题,但看起来你们有一个界面,可以使用复选框为用户分配权限。这里有一种方法可以做到这一点

$admin = User::find(1);

$admin->detachAllPermissions();

$permission = $request->get('permissions');

// loop through all checked permission passed from view
// we are assuming $permissions array to be an array of slug of permissions

foreach($permissions as $permission_slug){

    //get the permission object by slug
    $permission = Bican\Roles\Models\Permission::where('slug', $permission)->get();

    //attach to admin 
    $admin->attachPermission($permission);
}
这是解释

  • 获取要修改其权限的用户对象。在你的情况下,它是管理员。我刚刚硬编码,但你可以根据需要更改
  • 分离此用户的所有权限
  • 循环遍历从表单传递的所有权限段塞,从数据库获取权限对象并将其分配给用户 注意:请注意,我还没有测试过这段代码,这是一个基于插件提供的函数的算法

    插件还具有
    $user->detachPermission($permission)
    方法,该方法接受单个权限并在附加时将其与用户分离