Создайте файл в ресурсах / views / vendor / backpack / crud / fields / checklist_direct.blade.php со следующим содержанием (checklist_direct
может быть любым именем, которое вы выберете):
<!-- checklist with directly provided options -->
<!-- checklist_filtered -->
@php
$options = isset($field['options']) ? $field['options'] : [];
@endphp
<div @include('crud::inc.field_wrapper_attributes') >
<label>{!! $field['label'] !!}</label>
@include('crud::inc.field_translatable_icon')
<?php $entity_model = $crud->getModel(); ?>
<div class="row">
@foreach ($options as $option)
<div class="col-sm-4">
<div class="checkbox">
<label>
<input type="checkbox"
name="{{ $field['name'] }}[]"
value="{{ $option }}"
@if( ( old( $field["name"] ) && in_array($option , old( $field["name"])) ) )
checked = "checked"
@endif > {!! $option !!}
</label>
</div>
</div>
@endforeach
</div>
{{-- HINT --}}
@if (isset($field['hint']))
<p class="help-block">{!! $field['hint'] !!}</p>
@endif
</div>
ТогдаОбновление вашего вызова addField в вашем контроллере будет выглядеть примерно так:
$this->crud->addField([
'label' => 'Printers',
'type' => 'checklist_direct',
'name' => 'printer',
'attribute' => 'printer_name',
'options' => ['HP', 'Cannon', 'Dell'],
]);
ПРИМЕЧАНИЕ. Вы можете также рассмотреть возможность использования столбца enum на вашей таблице и использования шаблона поля enum.blade.php
или, возможно, создание собственного перечисленияполе, которое использует флажки вместо поля выбора.