thinkphp5.1框架api输出json格式报错格式修改

为了方便tp5.1框架输出报错信息看起来简单,在这里把输出信息修改(个人想法,不喜勿喷)


打开thinkphp->library->think->response->Json.php  找到output方法try{ }里面,添加

//引入Config
use think/facade/Config;

if(Config::get('api_return_standard')){
                $data = $this->standard($data);
                if(!$data){
                    return;
                }
            }

新建方法 standard

public function standard($data)
    {
        if(!isset($data[0]) || !is_int($data[0]) || !isset($data[1])){
            echo '数据格式错误<pre>';
             print_r($data);
            echo '</pre>';
            return false;
        }
        if(200 === $data[0]){
            return ['ret' => 200,'data' => $data[1],'msg'=>''];
        }
        return ['ret' => $data[0],'data' => [],'msg' => $data[1]];
    }


这个可以把    return [501,'数据错误'];  自动变换  

{"ret":501,"data":[],"msg":"数据错误"}


打开thinkphp->library->exception->Handle.php  找到convertExceptionToResponse  方法

在$content = ob_get_clean(); 下面添加

if(!Container::get('app')->config('api_return_standard')){
            include Container::get('app')->config('exception_tmpl');
            $response = Response::create($content,'html');
        }else{
            $response = Response::create([
                'namespace' => get_class($exception),
                'file' => $exception->getFile(),
                'line' => $exception->getLine(),
                'message' => $this->getMessage($exception),
            ],'json');
        }

在出现错误是  格式如下

QQ截图20220512172747.png

上一篇:最后一页

下一篇:thinkphp5.1验证码及验证码刷新功能的实现详解