【问题标题】:laravel entrust how to check a role's permission in blade?laravel委托如何在刀片中检查角色的权限?
【发布时间】:2023-03-18 23:30:02
【问题描述】:

我在我的 laravel 项目中使用了委托。 在刀片文件中,当我编辑角色时,我想用复选框显示所有权限。

但我坚持认为如果角色具有权限,我希望检查复选框状态。我将角色和所有权限传递给刀片,然后尝试

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

但是没用

我也尝试将 $role 和 $permissions 转换为数组并将它们传递给刀片并使用 foreach 两次,它也没有工作。 有什么办法吗?

【问题讨论】:

标签: laravel entrust


【解决方案1】:

你可以试试这个:

@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

【讨论】:

  • @EvolRof 很高兴为您提供帮助,我的回答是您的解决方案,然后请投票支持我的回答。
【解决方案2】:

原来$role也可以调用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-23
    • 2017-12-18
    • 2019-05-07
    • 1970-01-01
    • 2017-01-16
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    相关资源
    最近更新 更多