Надо добавить MultiSelect(dosamigos\multiselect\MultiSelect или kartik\widgets\Select2) в Gridview(kartik\grid\GridView).
Проблема такая - Не убирается последний параметр. То есть если по одному анчекить опшыны они снимаются кроме последней. Думаю проблема в pushState , потому что параметры по одному снимаются с УРЛ за исключением последнего.
Модель:
Код: Выделить всё
if ($this->multi_diet_param_id != null && count ($this->multi_diet_param_id)>0) {
$query->andFilterWhere( ['in', 'diet_id', $this->multi_diet_param_id ]);
}
Вьюха:
Код: Выделить всё
$form = ActiveForm::begin();
$panelBeforeTemplate = '
<div class="pull-right"><div class="btn-toolbar kv-grid-toolbar" role="toolbar">
{toolbar}
</div>
</div>
{before}
<div class="custom-grid-filter" style="width:85%">
<div style="width:15%;margin-left: 10px;" data-pjax="false">'.
$form->field($searchModel, 'multi_diet_param_id')->widget(Select2::class, [
'data' => $offerList,
'options' => [
'placeholder' => 'Eingetragen durch...',
'multiple' => true
],
'pluginOptions' => [
'allowClear' => true,
],
]) .' </div>
</div>
<div class="clearfix"></div>
';
ActiveForm::end();
echo GridView::widget([
'id' => 'restaurant',
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'instructionRef' => 'manage-restaurant',
'noteKey' => $noteKey,
'panelBeforeTemplate' => $panelBeforeTemplate,
'formatter' => [
'class' => Formatter::class,
'nullDisplay' => '',
],
'filterSelector' =>
", #" . Html::getInputId($searchModel, 'multi_diet_param_id')
,
'actionButtons' => [
[
'text' => RestaurantBModule::t('app', 'Create a restaurant'),
'url' => [
'create'
],
'visible' => Yii::$app->user->can(RestaurantBModule::ROLE_RESTAURANT_IMPROVER)
]
],
'columns' => $columnsConfig,
])