请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

添加batch()后输出错误就变成了array,并没有转为json

public function __construct(array $params = [])
{
    if (!is_array($params)) {
        return;
    }
    if (array_key_exists('code', $params)) {
        $this->code = $params['code'];
    }
    if (array_key_exists('message', $params)) {
        $this->message = $params['message'];
    }
    if (array_key_exists('errorCode', $params)) {
        $this->errorCode = $params['errorCode'];
    }
    // dump($this->message);
}

在BaseException 中输出为数组,

public function render(\Exception $e)
{
    if ($e instanceof Base) {
        $this->code = $e->code;
        $this->message = $e->message;
        $this->errorCode = $e->errorCode;
    } else {
        if (Config::get('app_debug')) {
            return parent::render($e);
        } else {
            $this->code = 500;
            $this->message = '服务器内部错误';
            $this->errorCode = 999;
            $this->recordErrorLog($e);
        }
    }
    $result = [
        'code'    => $this->errorCode,
        'message' => $this->message
    ];
    dump($this->message);
    return json($result, $this->code);
}

在ExceptionHandler中 输出为array

https://img1.sycdn.imooc.com//szimg/59f6d308000110b806290257.jpg

正在回答 回答被采纳积分+3

1回答

7七月 2017-10-31 00:20:53

你这个message本身是什么信息?我有空调试一下看看,版本是多少?

0 回复 有任何疑惑可以回复我~
  • 提问者 eeerrr #1
    第三张图片有3个输出内容:
    第一个是在 BaseException 中输出的 message;
    第二个是在 ExceptionHandler 中输出的 message;
    第三个是在 ExceptionHandler 最终输出的 json 。
    
    从 validate 抛到 BaseException,在 BaseException 中 dump 出来的为数组信息,但是到ExceptionHandler中 输出就变为字符串 array 了。
    ThinkPHP版本为:v5.0.11
    回复 有任何疑惑可以回复我~ 2017-10-31 15:57:31
  • 老师这个问题应该怎么处理
    回复 有任何疑惑可以回复我~ 2019-06-26 22:14:33
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信