@bighoc
php/javascript developer

Удобнейший способок получить итемсы для дропдауна в Yii2?

Есть таблица с полями `id`, `name`, `another`, `fields`....

Хочу получить массив вида через интерфейс ActiveRecord:
[id => name, id => name]

Я знаю как получить массив вида:
[ id => [ name => 'value' ] , id => [ name => 'value' ]  ]

Для этого я могу написать
Model::find->all()->indexBy('id');
Но хочу что бы значением было определённое поле а не массив ключ значение
  • Вопрос задан
  • 891 просмотр
Решения вопроса 1
@LAV45
public static function getList()
    {
        return static::find()
            ->select(['name', 'id'])
            ->indexBy('id')
            ->asArray()
            ->column();
    }

asArray() - возвражает данные как обычный масив, помагает секаномить на памяти и немного быстрее отрабатывает.
column() - возврашает первую калонку name т.к. она бедет первой select(['name', 'id'])
indexBy('id') - расставляет правильные ключи
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
fornit1917
@fornit1917
Я через ArrayHelper::map прогоняю.

ArrayHelper::map($models, 'id', 'name') даст то что нужно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы