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,
                ],
            ],
        ];
    }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM