Как реализовать custom_checklist_from_array? Вроде контрольный список, но данные вводятся в CrudController - PullRequest
2 голосов
/ 06 мая 2019

Я хочу использовать поле контрольного списка в рюкзаке laravel, но там говорится, что нам нужно установить связь с другим столом.Но я хотел бы добавить параметры в мой CrudController, например select_from_array.

Я не знаю, как настроить это поле.

Я хочу использовать контрольный список вместо select_from_array

1 Ответ

3 голосов
/ 08 мая 2019

Создайте файл в ресурсах / 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 или, возможно, создание собственного перечисленияполе, которое использует флажки вместо поля выбора.

...