How to get response as json format(application/json) in yii?
Create this function in your (base) Controller:
/**
* Return data to browser as JSON and end application.
* @param array $data
*/
protected function renderJSON($data)
{
header('Content-type: application/json');
echo CJSON::encode($data);
foreach (Yii::app()->log->routes as $route) {
if($route instanceof CWebLogRoute) {
$route->enabled = false; // disable any weblogroutes
}
}
Yii::app()->end();
}
Then simply call at the end of your action:
$this->renderJSON($yourData);
Yii 2 has this functionality built-in, use the following code at the end of your controller action:
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
return $data;