thinkphp6异常处理:
app\ExceptionHandle.php 异常处理类,重新定义render方法即可,代码如下:
/**
* Render an exception into an HTTP response.
*
* @access public
* @param \think\Request $request
* @param Throwable $e
* @return Response
*/
public function render($request, Throwable $e): Response
{
// app_debug模式下按原thinkphp6异常模式处理异常
if (env('app_debug')) {
return parent::render($request, $e);
}
// 获取当前访问应用
$app_name = app('http')->getName();
switch ($app_name) {
case 'admin':
// 自定义json返回错误
if ($e instanceof ValidateException) {
// return json($e->getError(), 422);
return json(['code' => 0, 'msg' => $e->getError()], 422);
}
// 自定义json返回异常
if ($e instanceof HttpException && $request->isAjax()) {
return json(['code' => 0, 'msg' => $e->getMessage()], $e->getStatusCode());
}
// 自定义json返回异常
if ($e instanceof HttpException) {
return json(['code' => 0, 'msg' => $e->getMessage()]);
}
// 自定义json返回异常
$errorData = [
'code' => 0,
'msg' => $e->getMessage(),
'errorcode' => $e->getCode(),
'result' => '未知错误,请开启调试模式。Unknown error, please turn on debugging mode'
];
return json($errorData);
break;
default:
return parent::render($request, $e);
break;
}
}
转载请务必注明:
来源:《建站管家》https://www.df81.com/news/390.html
本站部分信息来源网络,如有侵权,请联系QQ:1062129401删除。