Привет Всем
Нужно сделать фильтр по родительской категории:
Menu::find()->asArray()->all()
Получается массив
[0]=>
array(4) {
["id"]=>
string(1) "2"
["title"]=>
string(14) "Главная"
["link"]=>
string(10) "site/index"
["parent_menu"]=>
string(1) "0"
}
[1]=>
array(4) {
["id"]=>
string(1) "3"
["title"]=>
string(19) "О компании"
["link"]=>
string(10) "site/about"
["parent_menu"]=>
string(1) "0"
}
[2]=>
array(4) {
["id"]=>
string(1) "4"
["title"]=>
string(12) "Услуги"
["link"]=>
string(14) "services/index"
["parent_menu"]=>
string(1) "0"
}
[3]=>
array(4) {
["id"]=>
string(1) "5"
["title"]=>
string(35) "Юридические услуги"
["link"]=>
string(18) "services/juridical"
["parent_menu"]=>
string(1) "3"
}
[4]=>
array(4) {
["id"]=>
string(1) "6"
["title"]=>
string(31) "Оценочные услуги"
["link"]=>
string(18) "services/valuation"
["parent_menu"]=>
string(1) "3"
}
[5]=>
array(4) {
["id"]=>
string(1) "7"
["title"]=>
string(16) "Контакты"
["link"]=>
string(13) "site/contacts"
["parent_menu"]=>
string(1) "0"
}
}
Нужно в GridView вывести в фильтр все (6 из массива выше "parent_menu" => "title"),
делаю так
'filter' => ArrayHelper::map(Menu::find()->asArray()->all(), 'parent_menu', 'title'),
получается только 2
array(2) {
[0]=>
string(16) "Контакты"
[3]=>
string(31) "Оценочные услуги"
}
понимаю что одинаковые ключи и они переписываются, как правильно сделать?
GridView and ArrayHelper::map одинаковый ключи
-
- Сообщения: 9
- Зарегистрирован: 2015.06.06, 17:06
-
- Сообщения: 977
- Зарегистрирован: 2014.08.27, 21:54
Re: GridView and ArrayHelper::map одинаковый ключи
Index By по уникальному полю
Re: GridView and ArrayHelper::map одинаковый ключи
вместо этого:
сделать:
Код: Выделить всё
'filter' => ArrayHelper::map(Menu::find()->asArray()->all(), 'parent_menu', 'title'),
Код: Выделить всё
'filter' => Menu::find()->select(['title', 'id'])->indexBy('id')->column(),