DropDownList фильтр с множественным выбором GridView Yii2

Создание выпадающего списка с множественным выбором для фильтров GridView Yii2 на примере библиотеки Bootstrap Multiselect

1) Подключаем библиотеку Bootstrap Multiselect

Скачиваем на офф.сайте файлы bootstrap-multiselect.js и bootstrap-multiselect.css и подключаем (можно через registerjs)

<?php
   $this->registerJsFile('/js/bootstrap-multiselect.js', ['depends' => [\yii\web\JqueryAsset::className()]]);
   $this->registerCssFile("/css/bootstrap-multiselect.css", ['depends'=> ['backend\assets\AppAsset']]);
   //инициализируем фильтр dropDownList
   $this->registerJs("$(document).ready(function(){ $('#scansearch-user_scan').multiselect();});", yii\web\View::POS_END); 
?>

2) Добавляем список для фильтра в GridView 

<?php
   use yii\helpers\ArrayHelper;
   use yii\helpers\Html;
?>
[
   'attribute'=>'user_scan',
   'filter' => Html::activeDropDownList($searchModel, 'user_scan', ArrayHelper::map(User::find()->all(), 'id', 'name'), ['style'=>'display: none','multiple' =>true]),
   'value' => function($data){
      return $data->name;
   }
],

3) Модель поиска ScanSearch

Это в rules 

[[ 'user_scan'], 'safe'],

Это в метод search

if ($this->user_scan != null && count ($this->user_scan)>0) {
   $ids = array_map('intval', $this->user_scan);
   $query->andFilterWhere(['in', 'user_scan', $ids]);
}

 

422 04.03.2020 г. Заметки Yii2

Практический видеокурс по созданию электронного учебника в программе TurboSite

Хочешь научиться создавать адаптивные электронные пособия всего за 1 день?

Узнать подробнее

Похожие статьи

Зависимые списки yii2 0

Добавление плагинов CKEditor yii2 0

Checkbox status Yii2 0

Admin lte dmstr Yii2 0

Настройка own_update в RBAC YII2 0

Комментарии (0)

Обратная связь