0

私はRomanbican/Roles laravelパッケージを使用しています。permission_roleテーブル、rolesテーブル、およびpermissionsテーブルを持っています。さて、rolepermissionsをすべて取得したいと思います。例えば(役割:Admin、パーミッション:create.usersdelete.usersedit.users結果は次のようになります。

管理者:ロール内で権限のリストを取得する方法

  • create.users
  • delete.users
  • edit.users

どうすればいいですか?フィールドがあるテーブル:

役割


ID |名前|スラグ|レベル|



権限


ID |名前|スラグ|


ID permission_role



| permission_id | role_id |


答えて

1

まず第一に、あなたはこれを処理するためのコントローラが必要になります。コントローラーがロールを取得できる必要がある場合は、役割によるパーマを調べてからパーミッションを取得する必要があります。

だから、このようになります。これはあなたのニーズに合った

@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 

希望:その後、あなたのビュー内の役割によってパーマを取得するには、コントローラだろう

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); 
    } 

が、それは次のようになります。

+0

あなたの解決策を試してみます –

+0

うわー!それは男性、素晴らしい仕事! –

+0

喜んで助けてください!それと幸運。 – Robin

0

役割モデルファイルで関係を作る

public function permissions() 
{ 
    return $this->belongsToMany(Permissions::class, 'permission_role', 'role_id', 'permission_id ') 
} 
+0

私はそれを試してみましょう。 –

+0

hmm 'Collection {#217▼ #items:[] }'を返しますが、私のデータベースに1レコードあります –

関連する問題