Работая с 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