YII 返回值为JSON格式
在CONTROLLER里边加上
- 如果指示指定一个函数那么可以使用: \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
- 如果想整个应用都返回JSON格式,那么可以在component中设置:
'response' => [
'format' => 'json'
],
3. 如果像第二种方法那样让全局的返回值都是json格式,那么有些网页会显示为乱码,所以最佳的解决方法是在每一个类中加一个beforeAction,在其中执行第一种方法.
public function beforeAction($action) { return Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; }
4.第三种方法是自己写了一个前置的过滤器,实际上yii是自带了相关的过滤器的,可以直接使用,如下:
use yii\web\Response;
use yii\filters\ContentNegotiator;
public function behaviors()
{
return [
[
'class' => ContentNegotiator::className(),
'formats' => [
'application/json' => Response::FORMAT_JSON,
],
],
];
}