Yii2. Как отдать данные в другом формате (json, xml…)?


Работая с Yii, особенно при написании различных API, часто возникает необходимость отдать данные в другом формате. Например, JSON или XML.

Для этого в yii2 есть предусмотренные инструменты.
Укажите \Yii::$app->response->format перед return и фреймворк сам определит, в каком виде следует отдавать в поток данные.

Например, чтобы беззаботно отдать JSON-массив, просто выполните следующий код:

public function actionIndex()
{
    \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
    $data = ['London', 'Kiev', 'Stambul', 'and' => ['Paris', 'Milan']];
    return $data;
}

Этого кода достаточно, чтобы получить валидный JSON на выходе.

< UPD >
Также Вы можете возвращать данные по всем типа при помощи следующей, более простой конструкции:

public function actionIndex()
{
    return $this->asJson( ['London', 'Kiev', 'Stambul', 'and' => ['Paris', 'Milan']] ) ;
}

< /UPD >

Все предустановленные форматы:
FORMAT_RAW
FORMAT_HTML
FORMAT_JSON
FORMAT_JSONP
FORMAT_XML

, ,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *