Yii2. GridView. Filter: выпадающие списки, datepicker
Фильтрация грида в Yii2 не сильно отличается от аналогичной в Yii1, но все-таки несколько примеров для наглядности не помешает. Если кто-то захочет углубиться в документацию и познать все, то нас интересует класс DataColumn.
Об общих настройках фильтра читать в посте Yii2. GridView. Filter: настройка, примеры
Фильтр с выпадающим списком – 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: настройка, примеры
Этот комментарий был удален автором.
ОтветитьУдалить