0

Romanbican/Roles laravel 패키지를 사용하고 있는데 permission_role 테이블, roles 테이블 및 permissions 테이블이 있습니다. 이제 rolepermissions을 모두 받고 싶습니다. 예 : (역할 : Admin 권한 :. create.users, delete.users, edit.users 결과는 다음과 같습니다

관리자 :역할에서 사용 권한 목록을 얻는 방법

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

어떻게 할 수 있습니까? 여기에 필드가있는 테이블이 있습니다 :

역할


ID | 이름 | 슬러그 | 수준 |



권한


ID | 이름 | 슬러그 |




ID permission_role | permission_id | role_id | 역할 모델 파일 모두의

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

답변

1

최초의


+0

해결책을 시도해 보겠습니다. –

+0

와우! 그것은 남자, 굉장한 일했다! –

+0

도와 드리겠습니다! 행운을 빈다. – Robin

0

만들기 관계, 당신은이 문제를 처리하는 컨트롤러가 필요합니다. 컨트롤러는 역할을 가져야 만합니다. 그런 다음 역할에 의해 perms를 살펴본 다음 권한을 가져와야합니다.

그래서 다음과 같이 보일 것입니다. 이 사용자의 요구에 맞는

@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

hmm'Collection {# 217 ▼ #items : [] }'를 반환하지만 데이터베이스에 레코드가 1 개 있습니다. –