Смысл в том, что мне нужно сделать фильтр в колонке виджета GridView. Фильтр должен представлять из себя выпадающий список, элементы которого - повторяющиеся данные из колонки. Информация в колонке - данные из столбца таблицы БД, которые в свою очередь попадают в БД из формы, которую отправляет пользователь. (К примеру, как гостевая книга и мне нужно сделать фильтр по именам выпадающим списком)
Я использую Html::activeDropDownList() для построения данного списка. В качестве массива в activeDropDownList() передаю данные из таблицы БД при помощи ArrayHelper::getColumn() вот код:
//формирую массив, выбрав из таблицы БД все группы повторяющихся данных
$Arr = $model::find()->select('email')->groupBy('email')->asArray()->all();
//добавляю в фильтр по колонке список
'filter' => Html::activeDropDownList($model, 'name', ArrayHelper::getColumn($Arr,'name'), ['class'=>'form-control', 'prompt' => 'Выбрать', 'value' => $model->name, ]),
Список появляется и работает, но в адресную строку для обработки поисковой модели передается значение value (0, 1, 2 и т.д.), а не названия данных в колонке и соответственно такой фильтр ничего не находит.
Вот у меня и вопрос, можно ли передавать в value нужные мне значения вместо цифр или я изначально не правильно делаю фильтр? Или необходима еще одна отдельная таблица в БД для имен и тогда нужно будет использовать их ID?