【问题标题】:how to change response in xml or json using Yii2 micro如何使用 Yii2 micro 更改 xml 或 json 中的响应
【发布时间】:2021-06-17 15:46:53
【问题描述】:

这是我的控制器

class PostController extends \yii\rest\ActiveController {

    public $modelClass = 'micro\models\Post';

    public function behaviors() {
        $behaviors = parent::behaviors();
        unset($behaviors['rateLimiter']);
        return $behaviors;
    }

}

它将为CRUD生成API,但它以XML格式响应。

这里是单控制器的解决方案

public function behaviors() {
    $behaviors = parent::behaviors();
    $behaviors['contentNegotiator'] = [
        'class' => 'yii\filters\ContentNegotiator',
        'formats' => [
            'application/json' => \yii\web\Response::FORMAT_JSON,
        ]
    ];
    unset($behaviors['rateLimiter']);
    return $behaviors;
}

但我想要JSON格式全局

的响应

【问题讨论】:

    标签: api yii2 micro


    【解决方案1】:

    您可以在配置文件中全局配置响应格式。

    /config/config.php 文件components 部分,配置response 以返回json

    'response' => [
        'format' => Response::FORMAT_JSON,
        'formatters' => [
            Response::FORMAT_JSON => [
                'class' => '\yii\web\JsonResponseFormatter',
                'prettyPrint' => YII_DEBUG,
                'encodeOptions' => JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE
            ]
        ]
    ],
    

    Yii2 documentation有更多信息。

    【讨论】:

    • 这适用于 Advance 和基本框架,但是,在 Micro setup 的情况下,它不起作用。|我的控制器扩展了 'yii\rest\ActiveController'
    猜你喜欢
    • 2015-09-09
    • 2017-04-12
    • 1970-01-01
    • 2016-02-11
    • 2018-01-30
    • 1970-01-01
    • 2011-02-25
    • 2012-05-25
    相关资源
    最近更新 更多