由于管理后臺幾乎所有的請求都是通過 ajax 請求的,默認的異常直接拋出,會導致 ajax 返回的 json 個數錯誤,于是對框架拋出的異常做了自定義處理,將 ajax 請求時的異常以 json 格式拋出,其他異常繼承與異常處理方法
```
use think\exception\Handle;
use think\exception\HttpException;
use think\Request;
class TpException extends Handle
{
public function render(\Exception $e)
{
if ($e instanceof HttpException) {
$statusCode = $e->getStatusCode();
http_response_code($statusCode);
}
//可以在此交由系統處理
if (Request::instance()->isAjax()) {
$error_code = $this->getCode($e) ?: 1;
return ajax_return_adv_error($this->getMessage($e), $error_code);
}
return parent::render($e);
}
}
```
如果需要請修改 `extend\TpException.php` 文件
>[info] 以后在使用時無論是否有 ajax 請求,都可以輕松拋出一個異常,都不會導致沒有正確的 json 格式數據返回
- 概要
- 開始使用
- 寫在前面
- 目錄結構
- 模板主題支持
- 前置方法before支持
- 數據返回
- 異常接管
- Rbac 權限管理
- 開始使用
- 用戶管理
- 分組管理
- 節點管理
- 角色管理
- 使用流程
- 其他
- 代碼自動生成 v1.2
- 示例一 - 一級控制器
- 示例二 - 多級控制器
- 示例三 - 從數據表生成
- 示例四 - 指定生成的文件
- 示例五 - 命令行模式
- 示例六 - 模擬命令行模式
- 代碼自動生成
- 示例一 - 一級控制器
- 示例二 - 多級控制器
- 控制器
- 公共控制器
- traits 多繼承 Controller
- 公開不授權控制器
- 其他控制器
- 標簽擴展
- 模板
- 網站操作日志
- 節點圖
- 行為驅動
- 其他后端方法
- Excel一鍵導出
- Excel一鍵導入
- 文件下載
- 郵件發送
- 七牛文件上傳
- id加密
- 前端
- ajax請求
- 表單校驗
- 豐富彈層
- 異步操作
- 表格溢出
- 隨機字符串
- 自動面包屑導航
- 動態加載文件
- 文件上傳
- Tab 切換
- 圖片預覽
- 二維碼生成
- 日歷組件
- 升級指導
- 更新日志
- FAQ