如何使用config / main.php设置Yii2模块以返回JSON响应

时间:2016-07-27 07:03:58

标签: json configuration module yii2 yii2-advanced-app

我目前在API模块中的每个控制器上使用以下代码行,以便返回JSON响应/数据。

UIView *containerView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 170, 200)];


UIView *circle = [[UIView alloc]initWithFrame:CGRectMake(10, 10, 150, 150)];

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 170, 150, 30)];
label.text = @"Request funds";
label.textAlignment = NSTextAlignmentCenter;

circle.layer.borderColor = [UIColor lightGrayColor].CGColor;
circle.layer.borderWidth = 1.0;
circle.layer.cornerRadius = 75; // width or height / 2  and  width = height (must for proper round shape)
circle.layer.masksToBounds = YES;

[containerView addSubview:circle];
[containerView addSubview:label];

[self.view addSubview: containerView];

效果很好。但是如何使用主配置文件实现相同的目标呢? 我在我的前端/ config / main.php上尝试了以下内容

public function behaviors()
    {
        $behaviors = parent::behaviors();
        $behaviors['contentNegotiator']['formats']['text/html'] =  Response::FORMAT_JSON;
        return $behaviors;
    }

以上配置仍然只返回XML响应。设置API模块中的所有控制器以返回JSON数据的正确配置是什么。谢谢

2 个答案:

答案 0 :(得分:1)

按如下方式配置响应组件:

'response' => [
    'format' => yii\web\Response::FORMAT_JSON,
    // ...
]

formats是一个包含可用格式的数组。 format是实际的输出格式。

答案 1 :(得分:0)

添加这是你的config / main-local.php

use yii\web\Response;
$config['bootstrap'][]=
    [
        'class' => '\yii\filters\ContentNegotiator',
        'formats' => [

            'text/html' => Response::FORMAT_JSON,
        ]
    ];