YII 返回值为JSON格式

在CONTROLLER里边加上

  1. 如果指示指定一个函数那么可以使用: \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
  2. 如果想整个应用都返回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,
                ],
            ],
        ];
    }
posted @ 2015-06-24 16:11  S大好人S  阅读(5863)  评论(0编辑  收藏  举报