学习thinkphp5不可预知的内部异常api数据输出解决方案
作者:互联网
学习thinkphp5不可预知的内部异常api数据输出解决方案
原报错异常
在save 方法中创造一个报错,如下,无data变量,但是echo,
//post 需要定义$id
public function save()
{
echo $data;
$post_data = input('post.');
$data = array(
'post_data' => $post_data
);
return show(0, '保存成功!', $data);
}
请求报错,抛出异常
自带报错异常,是调用的根目录下\thinkphp\library\think\exception 中Handle.php类的render方法
public function render(Exception $e)
{
if ($e instanceof HttpException) {
return $this->renderHttpException($e);
} else {
return $this->convertExceptionToResponse($e);
}
}
我们需要新建一个类,重新渲染render方法,改变抛出异常的方式
封装报错异常类
1、创建文件ApiHandleException.php
在thinkphpwu\application\common\lib\exception 目录下创建ApiHandleException.php文件
具体代码如下:
<?php
namespace app\common\lib\exception;
//引用异常类
use think\exception\Handle;
//继承异常类
class ApiHandleException extends Handle
{
//自定义http状态码
public static $httpCode = 400;
//覆盖原有render方法
public function render(\Exception $e)
{
return show(0, $e->getMessage(), [], self::$httpCode);
}
}
2、修改config.php配置
在application目录下的config.php中找到exception_handle
修改:
// 异常处理handle类 留空使用 \think\exception\Handle
'exception_handle' => 'app\common\lib\exception\ApiHandleException',
postman测试
标签:exception,异常,预知,thinkphp5,api,报错,post,php,data 来源: https://blog.csdn.net/guo_qiangqiang/article/details/112108548