如何获取角色中的权限列表
How to get list of permissions in a role
我正在使用 Romanbican/Roles
laravel 包,我有 permission_role
table、roles
table 和 permissions
table。现在,我想获取特定 role
的所有 permissions
。例如(角色:Admin
,权限:create.users
,delete.users
,edit.users
。结果将是:
管理员:
- create.users
- delete.users
- edit.users
我该怎么做?这是我的 tables 字段:
角色
编号 |姓名 |鼻涕虫 |级别 |
权限
编号 |姓名 |塞子 |
permission_role
编号 | permission_id | role_id |
在角色模型文件中建立关系
public function permissions()
{
return $this->belongsToMany(Permissions::class, 'permission_role', 'role_id', 'permission_id ')
}
首先,您需要一个控制器来处理这个问题。 controller 必须能够获取角色,然后它需要通过角色照管perms,然后获取权限。
所以它看起来像这样;
public function editRolePerms($id)
{
$getrole = Role::findOrFail($id);
$permbyrole = DB::table('permission_role')->select('permission_id')->where('role_id', $id)->lists('permission_id');
$getperms = Permission::all();
return view('your_view')->with('role', $getrole)->with('getperms', $getperms)->with('permbyrole', $permbyrole);
}
那将是控制器,然后根据您的视图中的角色获得权限,它看起来像这样:
@foreach($getperms as $perm)
<tr>
<td>{{ $perm->name }}</td>
<td>{{ $perm->description }}</td>
@if(!in_array($perm->id, $permbyrole))
<td><span id="{{ $perm->id }}" class="label label-danger">Not enabled</span></td>
<td><input onclick="toggleRole({{ $perm->id }}, {{ $role->id }})" type="checkbox" id="checkbox_{{ $perm->id }}"></td>
@else
<td><span id="{{ $perm->id }}" class="label label-success">Enabled</span></td>
<td><input onclick="toggleRole({{ $perm->id }}, {{ $role->id }})" type="checkbox" checked="true" id="checkbox_{{ $perm->id }}"></td>
@endif
</tr>
@endforeach
希望这能满足您的需要。
我正在使用 Romanbican/Roles
laravel 包,我有 permission_role
table、roles
table 和 permissions
table。现在,我想获取特定 role
的所有 permissions
。例如(角色:Admin
,权限:create.users
,delete.users
,edit.users
。结果将是:
管理员:
- create.users
- delete.users
- edit.users
我该怎么做?这是我的 tables 字段:
角色
编号 |姓名 |鼻涕虫 |级别 |
权限
编号 |姓名 |塞子 |
permission_role
编号 | permission_id | role_id |
在角色模型文件中建立关系
public function permissions()
{
return $this->belongsToMany(Permissions::class, 'permission_role', 'role_id', 'permission_id ')
}
首先,您需要一个控制器来处理这个问题。 controller 必须能够获取角色,然后它需要通过角色照管perms,然后获取权限。
所以它看起来像这样;
public function editRolePerms($id)
{
$getrole = Role::findOrFail($id);
$permbyrole = DB::table('permission_role')->select('permission_id')->where('role_id', $id)->lists('permission_id');
$getperms = Permission::all();
return view('your_view')->with('role', $getrole)->with('getperms', $getperms)->with('permbyrole', $permbyrole);
}
那将是控制器,然后根据您的视图中的角色获得权限,它看起来像这样:
@foreach($getperms as $perm)
<tr>
<td>{{ $perm->name }}</td>
<td>{{ $perm->description }}</td>
@if(!in_array($perm->id, $permbyrole))
<td><span id="{{ $perm->id }}" class="label label-danger">Not enabled</span></td>
<td><input onclick="toggleRole({{ $perm->id }}, {{ $role->id }})" type="checkbox" id="checkbox_{{ $perm->id }}"></td>
@else
<td><span id="{{ $perm->id }}" class="label label-success">Enabled</span></td>
<td><input onclick="toggleRole({{ $perm->id }}, {{ $role->id }})" type="checkbox" checked="true" id="checkbox_{{ $perm->id }}"></td>
@endif
</tr>
@endforeach
希望这能满足您的需要。