У меня есть следующий код, который работает с пакетом Form Collective, однако сейчас он не работает, так как пакет не был обновлен до версии 5.5. Я также использую пакет разрешений Laravel Spatie
Код у меня есть
@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>
Таким образом, вы можете проверить, имеет ли ваша роль разрешение с идентификатором $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