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: настройка, примеры
Этот комментарий был удален автором.
ОтветитьУдалить