Задать вопрос

Yii arrayhelper, как вернуть массив?

Есть метод в модели
public static function getItemList($cat_id)
    {
   $models = NetItem::find()->where(['count_id' => $cat_id])->asArray()->all();
   return ArrayHelper::map($models, 'id', 'name_en');
   }

Через контроллер я получаю
output: {244:Itemname, 245:Itemname2}
А для передачи в виджет мне нужно сделать json такого вида:
$out = [
    ['id'=>244, 'name'=>'Itemname'],
    ['id'=>245, 'name'=>'Itemname2'],
   // and so on
];

Как это сделать наиболее простым способом?
  • Вопрос задан
  • 3623 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
public static function getItemList($cat_id)
{

   return array_map(function (array $item) {
        return [
            'id' => $item['id'],
            'name' => $item['name_en'];
        ];
   }, NetItem::find()->where(['count_id' => $cat_id])->asArray()->all());
}


А еще лучше (но не отвечаю за работоспособность, я не вкурсе как там что в Yii2), указать явно в селекте.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы