Laravel 5.5 - 如果角色有权限,勾选复选框
Laravel 5.5 - Check checkbox if role has permission
我有以下代码可与 Form Collective 包一起使用,但是目前无法正常工作,因为该包尚未针对 5.5 进行更新。我也在使用 Spatie 的 Laravel 权限包
我的密码是
@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
属性添加到复选框 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>
这样你就可以检查你的角色是否有id为$permission->id
的权限。
试试这个:
@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
我有以下代码可与 Form Collective 包一起使用,但是目前无法正常工作,因为该包尚未针对 5.5 进行更新。我也在使用 Spatie 的 Laravel 权限包
我的密码是
@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
属性添加到复选框 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>
这样你就可以检查你的角色是否有id为$permission->id
的权限。
试试这个:
@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