码迷,mamicode.com
首页 > 其他好文 > 详细

YII修改Exception返回值为任意格式

时间:2015-08-25 18:44:09      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

YII提供的可更改异常返回的格式很有限而且很不灵活,在这里我们需要修改框架的代码来实现。

既然是异常,那么我们就要修改响应的文件:/home/gcheng/workShop/basic/vendor/yiisoft/yii2/web/ErrorHandler

我们的目标是把异常格式改为如下格式:

{
    "Exception": [
        {
            "code": -3,
            "name": "decryption error"
        }
    ]
}

 那么相对与原有的格式我们要去掉默认的code,name和type

        
   //使用如下格式抛出异常,抛出的异常继承自UserException(YII用来抛出用户定制的异常)
throw new UserException(Yii::$app->ZYKException->errorMessage(-6));

//在此处array中为字符串: {"Exception":[{"code":-3,"name":"decryption error"}]},传递字符串而不是直接传递数组的原因是,异常的message必须是字符串类型
if($exception instanceof UserException) { $array = json_decode($exception->getMessage(), true); } else { $array = [ ‘name‘ => ($exception instanceof Exception || $exception instanceof ErrorException) ? $exception->getName() : ‘Exception‘, ‘message‘ => $exception->getMessage(), ‘code‘ => $exception->getCode(), ]; }

 

YII修改Exception返回值为任意格式

标签:

原文地址:http://www.cnblogs.com/wlemory/p/4757931.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!