2017-08-04 60 views
0

我在我的laravel項目中使用委託。 在我編輯角色時的刀片文件中,我想用複選框顯示所有權限。laravel委託如何檢查角色在刀片上的權限?

但我停留在思想,我想,如果角色有permission.I通過角色和所有權限刀片,並嘗試

@foreach($permissions as $permission) 
    <input type="checkbox" value="{{$permission->name}}" 
    @if($role->hasPermission($permission->name)) 
    checked="checked" 
    @endif 
@endforeach 

複選框狀態被檢查,但沒有奏效

我也嘗試將$角色和$權限轉換爲數組,並將它們傳遞給刀片並使用foreach兩次,它也不起作用。 有什麼辦法可以做到嗎?

+1

https://github.com/Zizaco/entrust#blade-templates –

+0

我嘗試@權限,但它只是審查登錄用戶的權限,而不是我想編輯的角色。 –

回答

0

你可以試試這個:

@foreach($permissions as $permission) 
    @foreach($roles as $role) 
     @if($permission->hasRole($role->name)) 
      <input type="checkbox" checked="checked" name="perms[[]" value="{{ $permission->id }}"> 
     @else 
      <input type="checkbox" name="perms[]" value="{{ $permission->id }}"> 
     @endif 
    @endforeach 
@endforeach 
+0

謝謝這是一個比我的更好的方式 –

+0

@EvolRof很高興幫助和我的答案是你的解決方案,然後請upvote我的答案。 –

0

原來,$角色也可以調用調用hasPermission方法

@foreach($permissions as $permission) 
    <div class="checkbox pull-left" > 
     <label class=""> 
      <input type="checkbox" name="perms[]" value="{{$permission->id}}" 
      @if($role->hasPermission($permission->name)) checked @endif> 

      <p>{{$permission->display_name}}</p> 
     </label> 
    </div> 
@endforeach