陈诺

陈诺

我那么喜欢你,你喜欢我一下会死啊

  • 财富值610
  • 威望值0
  • 总积分660

个人信息

  • 2017-06-27 已签到
    连续签到2天,获得了10个金钱
  • 回复了 的回复

    厉害厉害,向您学习

  • 回复了 的回复

    这个可以哦!还应该去看一下yii的操作数据库,现在都是原生sql 尴尬,您是yii源码都看了么

  • 回复了 的回复

    厉害了,我的哥,回头捣鼓捣鼓

  • 回复了 的回复

    还少个定义格式的方法,就完美了

    这个啊,那得花点时间,没去研究呢,只是简单的满足了业务需求,哈哈哈

  • 回复了 的回复

    还少个定义格式的方法,就完美了

    回头下班了,会完整的写出来

  • 回复了 的回复

    还少个定义格式的方法,就完美了

    其实,我发布这篇是为了能提问的,今天刚注册的,金钱为5,提问悬赏必须大于10,哈哈哈哈

  • 问题总结:
    RESTFull web server's error handing 里说的如果想要自定义错误响应,需要在config里添加:

    return [
        // ...
        'components' => [
            'response' => [
                'class' => 'yii\web\Response',
                'on beforeSend' => function ($event) {
                    $response = $event->sender;
                    if ($response->data !== null && !empty(Yii::$app->request->get('suppress_response_code'))) {
                        $response->data = [
                            'success' => $response->isSuccessful,
                            'data' => $response->data,
                        ];
                        $response->statusCode = 200;
                    }
                },
            ],
        ],
    ];
    

    实践证明,除了给reponse添加class,on beforeSend,还需要指定format为FORMAT_JSON
    具体代码如下:

    return [
         'response' => [
                'class' => 'yii\web\Response',
                'format' => yii\web\Response::FORMAT_JSON,
                'charset' => 'UTF-8',
                'on beforeSend' => function ($event) {
                    $response = $event->sender;
                    if ($response->data !== null && !empty(Yii::$app->request->get('suppress_response_code'))) {
                        $response->data = [
                            'success' => $response->isSuccessful,
                            'data' => $response->data,
                        ];
                        $response->statusCode = 200;
                    }
                },
            ],
    ]
    

    本问题得到解答,感谢
    @ymfhack

  • 回复了 的回答

    ???????????

    不明白您想干嘛

  • 回复了 的回答
    /**
         * @return bool whether this response is successful
         */
        public function getIsSuccessful()
        {
            return $this->getStatusCode() >= 200 && $this->getStatusCode() < 300;
        }
    

    谢谢您,真心感谢,我实现了,config里边还需要添加 format为json

    'response' => [
                'class' => 'yii\web\Response',
                'format' => yii\web\Response::FORMAT_JSON,
                'charset' => 'UTF-8',
                'on beforeSend' => function ($event) {
                    $response = $event->sender;
                    if ($response->data !== null && !empty(Yii::$app->request->get('suppress_response_code'))) {
                        $response->data = [
                            'success' => $response->isSuccessful,
                            'data' => $response->data,
                        ];
                        $response->statusCode = 200;
                    }
                },
            ],
    
主管 等级规则
660/1000
资料完整度
80/100
用户活跃度
0/100

Ta的关注

5

Ta的粉丝

4

Ta的访客

25