Задать вопрос
@niksamokhvalov
Веб-разработчик

Как в REST-приложении через ActiveDataProvider вывести массив?

Имеется две модели: Text и Tags. Между ними настроены связи. Ответ REST-приложения на запрос модели Text должен быть приблизительно следующий:
"items": [
     {
          "id": "1",
          "name": "Title",
          "desc": "Description",
          "active": 1,
          "tags": [ // Это данные из модели Tags
               {
                    "id": 1,
                    "name": "Test tag"
               }
          ]
     },
     …
]


REST-приложение выдаёт ответ через ActiveDataProvider:
return new ActiveDataProvider([
     'query' => $modelClass::find()->with('tags')
]);


Но в ответе приложения нет массива tags :-( Если в query добавить метод arArray() ('query' => $modelClass::find()->with('tags')->asArray()), то массив появится, но, например, в модели Text перестанет работать кастомизация полей.

В общем, прошу помочь понять почему не работает и как надо решать подобные задачи.
  • Вопрос задан
  • 151 просмотр
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • HTML Academy
    Бэкенд-разработчик для Addamant
    6 месяцев
    Далее
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
Решения вопроса 1
@niksamokhvalov Автор вопроса
Веб-разработчик
Невнимательно читал доку :-( Оказывается, всё лишь надо было передать в запросе GET-параметр expand=tags.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Казань
от 75 000 до 125 000 ₽
Инком Нижний Новгород
от 160 000 до 230 000 ₽
Инком Нижний Новгород
от 160 000 до 230 000 ₽