Yii2. GridView. Filter: выпадающие списки, datepicker

Фильтрация грида в Yii2 не сильно отличается от аналогичной в Yii1, но все-таки несколько примеров для наглядности не помешает. Если кто-то захочет углубиться в документацию и познать все, то нас интересует класс DataColumn.

Фильтр с выпадающим списком – Dropdown

Варианты выпадающих списков различны:

1. Задать вручную обычный массив

[
    'attribute' => 'active',
    'filter' => ['да', 'нет']
],

2. Получить данные из модели, например, связанной

[
    'attribute' => 'active',
    'filter' => ArrayHelper::map(Section::find()->all(), 'id', 'title')
    'filterInputOptions' => ['class' => 'form-control form-control-sm']
],
И еще вариант с использованием activeDropDownList. Результаты обоих примеров будут идентичны.
[
    'attribute' => 'active',
    'filter' => Html::activeDropDownList($searchModel, 'section_id', ArrayHelper::map(PostSection::find()->all(), 'id', 'title'), ['prompt' => '', 'class' => 'form-control form-control-sm']),
],

3. Select2 в фильтре

[
    'attribute' => 'active',
    'filter' => \kartik\select2\Select2::widget([
        'name' => 'section_id',
        'data' => ArrayHelper::map(Section::find()->all(), 'id', 'name'),
        'value' => $searchModel->section_id,
        'options' => [
            'class' => 'form-control',
            'placeholder' => 'Выберите значение'
        ],
        'pluginOptions' => [
            'allowClear' => true,
            'selectOnClose' => true,
        ]
    ])

],


Фильтр по дате / datepicker

[
    'attribute'=>'date',
    'filter' => \nkovacs\datetimepicker\DateTimePicker::widget([
        'model' => $searchModel,
        'value' => $searchModel->date,
        'attribute' => 'date',
        'type' => 'date',
        'format' => 'php:d.m.Y',
    ]),
],


Об общих настройках фильтра читать в посте Yii2. GridView. Filter: настройка, примеры

Комментарии

Отправить комментарий

Популярные сообщения