我有以下代码与Form Collective包一起使用,但由于包尚未针对5.5进行更新,因此目前无法正常工作。我也在使用Spatie的Laravel Permission包
我的代码是
@foreach ($permissions as $permission)
{{Form::checkbox('permissions[]', $permission->id, $role->permissions ) }}
{{Form::label($permission->name, ucfirst($permission->name)) }}<br>
@endforeach
我相信只是循环遍历permissions
,如果permission
属于当前role
,请选中此框。
如何在不使用包的情况下实现这一目标?
我目前正在尝试
@foreach ($permissions as $permission)
<div class="checkbox">
<label>
{{ ucfirst($permission->name) }}
</label>
<input type="checkbox" name="permissions[]" value="{{ $permission->id }}">
<br>
</div>
@endforeach
但我不确定如何根据角色是否在列表中拥有权限来附加checked属性。
答案 0 :(得分:6)
只需将checked
属性添加到复选框HTML:
<input type="checkbox" name="permissions[]" value="{{ $permission->id }}" checked>
如果您需要在某个条件下设置它,请使用以下代码:
<input type="checkbox" name="permissions[]" value="{{ $permission->id }}" @if(/* some condition */) checked @endif>
修改强>
因为在我添加一些细节之前我不明白这个问题。
假设您的Role
模型具有一组附加权限,并且存储在属性$role->permissions
中,您可以
<input type="checkbox" name="permissions[]" value="{{ $permission->id }}" @if($role->permissions->contains($permission)) checked @endif>
通过这种方式,您可以检查您的角色是否具有身份$permission->id
的权限。
答案 1 :(得分:2)
试试这个:
@foreach ($permissions as $permission)
<div class="checkbox">
<label>
{{ ucfirst($permission->name) }}
</label>
<input type="checkbox" name="permissions[]" value="{{ $permission->id }} {{($role->permissions == $permission->id) ? 'checked' : ''}}">
<br>
</div>
@endforeach