@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 перестанет работать кастомизация полей.

В общем, прошу помочь понять почему не работает и как надо решать подобные задачи.
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
@niksamokhvalov Автор вопроса
Веб-разработчик
Невнимательно читал доку :-( Оказывается, всё лишь надо было передать в запросе GET-параметр expand=tags.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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