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';
                }
            },
        ],
       ……
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容