Yii2 全局修改 Response 配置

写接口代码,返回给客户端数据,为了方便直接返回 数组 结构;
但是 这样话会报以下错误

Exception 'yii\base\InvalidArgumentException' with message 'Response content must not be an array.'

上面错误提示返回的数据不能是个数组(laravel 就会直接处理成 json 串),Yii2 没有这样自动转换的功能,返回的数据就必须手动转成 json 串(使用 json_encode函数);

但是不想在每个接口中都使用 json_encode 函数(太麻烦);所以就想了一个全局配置的方法;
按照以下配置就 ok了

'components' => [
       ……
        'response' => [
            'on beforeSend' => function($event) {
                if(is_array($event->sender->data)){
                    $event->sender->format = 'json';
                }
            },
        ],
       ……

你可能感兴趣的:(Yii2 全局修改 Response 配置)