У меня есть yii2 GridView колонки с множественным выбором фильтром, на имеет много соотношения:Yii2 GridView сортировка брейков множественного выбор фильтр, не в силах отменить выбор после сортировки
в модели поиска:
$dataProvider->sort->attributes['programSelect'] = [
'asc' => ['programs.name' => SORT_ASC],
'desc' => ['programs.name' => SORT_DESC],
];
Колонка в виде:
$columns[]=[
'format' => 'raw',
'attribute' => 'programSelect',
'value' => function ($data) {return '...'},
'headerOptions' => [
'style' => 'width:100px',
'data-header-attrib'=>'programs',
],
'filter' => Html::activeDropDownList($searchModel, 'programSelect', $myPrograms,
[
'class' => 'form-control multiselect-filter',
'id' =>'programs-filter',
'multiple' => true,
]),
]
вид сетки отлично работает до тех пор после сортировки в первый раз. Соединения, создаваемые сортировщиком, содержат повторяющиеся элементы следующим образом.
На первой загрузке сетки, URL-адрес из lsorting чернил:
http://myurl?ModelSearch[programSelect]=&ModelSearch[programSelect][]=2&ModelSearch[programSelect][]=26
(обратите внимание на [] для мульти-выберите Params, который, как ожидается для массива URL-адрес Params)
После нажатия сортировать ссылку, то URL PARAMS получить индексы массива следующим образом:
http://myurl?ModelSearch[programSelect][0]=2&ModelSearch[programSelect][1]=26&sort=programSelect
Это ломает множественный выбор, и я больше не могу изменить мульти-выбор параметров в фильтре.
У любого разработчика yii2 есть лучший способ решить эту проблему?
Благодаря