# 當前平臺已停止維護,請盡快遷移至[云靜Admin TP6](https://gitee.com/worklz/yunj-admin-tp6)
[https://gitee.com/worklz/yunj-admin-tp6](https://gitee.com/worklz/yunj-admin-tp6)
*****
> 說明
在驗證器常規的規則校驗通過后,可在驗證器中書通過 `handleData` 方法對數據進行進一步的處理。
方法:handleData(array $rawData,$scene)
參數:
| 參數 | 類型 | 說明 |
| --- | --- | --- |
| **rawData** | array | 原始傳入的校驗數據,調用驗證器 `check($data)` 方法時傳入的數據 |
| **scene** | string或number或null | 校驗場景 |
返回值:處理后的數據,可通過調用驗證器 `getData()` 方法獲取
> 示例
* 驗證器:
```php
namespace app\demo\validate;
use think\Db;
final class FormDemo extends Validate {
protected $rule = [
'username' => 'require',
'password' => 'require',
];
protected $message = [
'username.require' => '[賬戶]不能為空',
'password.require' => '[密碼]不能為空',
];
protected $scene = [
'Test' => ['username', 'password'],
];
protected function handleData(array $rawData, $scene): array {
$data = $rawData;
switch ($scene) {
case "Test":
// 檢查username是否存在
$hasExist = Db::name("member")->where([["username", "eq", $data["username"]]])->value("id");
if ($hasExist) {
// 可通過調用方法 throw_error_json 或拋出異常 Exception 的方式設置錯誤信息,并返回驗證失敗
// 方式1
throw_error_json("[賬戶]已存在");
// 方式2
//throw new \Exception("[賬戶]已存在");
}
break;
}
// 返回處理后的數據
return $data;
}
}
```
* 驗證器調用:
```php
$data = [
"username" => "xiaowang",
"password" => "123456",
];
$validate = new \app\demo\validate\FormDemo();
$res = $validate->scene("Test")->check($data);
if ($res) {
// 驗證通過,獲取處理后的數據
$data = $validate->getData();
dump($data);
} else {
// 驗證失敗,獲取失敗信息
$error = $validate->getError();
dump($error);
}
```
- 序言
- 基礎
- 安裝
- 目錄結構
- 配置
- 版本
- 控制器
- 使用說明
- 視圖模板
- 使用說明
- 區塊重寫
- seo
- headStyle
- headScript
- content
- script
- 驗證器
- TP驗證器
- 使用說明
- 自動處理
- 數據處理
- 前端驗證器
- 概述
- 調用示例
- 通用驗證規則
- 表單構建器
- 基礎示例
- 初始化
- 鏈式操作
- tab
- url
- field
- fieldValidate
- button
- load
- submit
- 渲染輸出
- 字段配置
- 使用說明
- 隱藏域(hidden)
- 文本框(text)
- 文本域(textarea)
- 密碼框(password)
- 富文本(editor)
- 文檔編輯(markdown)
- 下拉選框(select)
- 單選框(radio)
- 復選框(checkbox)
- 開關(switch)
- 日期(date)
- 時間日期(datetime)
- 年份(year)
- 月份(month)
- 時間(time)
- 單圖(img)
- 多圖(imgs)
- 單文件(file)
- 多文件(files)
- 取色器(color)
- 地區聯動(area)
- 下拉搜索(dropdownSearch)
- 樹(tree)
- 自定義字段
- 單一字段調用
- 概述
- 示例
- 表格構建器
- 基礎示例
- 初始化
- 鏈式操作
- state
- url
- page
- limit
- limits
- filter
- filterValidate
- toolbar
- defaultToolbar
- import
- cols
- count
- items
- event
- 渲染輸出
- 表頭配置
- 使用說明
- 枚舉(enum)
- 時間日期(datetime)
- 單圖(img)
- 多圖(imgs)
- 單文件(file)
- 多文件(files)
- 拖拽排序(dragSort)
- 顏色呈現(color)
- 地區呈現(area)
- 操作欄(action)
- 自定義表頭
- JS事件
- 異步事件監聽
- 導入構建器
- 基礎示例
- 初始化
- 鏈式操作
- sheet
- cols
- colsValidate
- limit
- tips
- row
- rows
- 渲染輸出
- 主題開發
- 實現步驟
- 系統主題
- 注意
- PHP公共方法庫
- 配置
- yunj_config
- 構建器
- YF
- YT
- YI
- 重定向
- url_tips
- redirect_tips
- throw_redirect
- 響應輸出
- response_msg
- response_json
- success_json
- error_json
- throw_json
- throw_success_json
- throw_error_json
- 數組
- array_eq
- array_in
- array_supp
- array_depth
- array_insert
- array_key_prefix
- 驗證
- is_mobile
- is_positive_int
- is_positive_integer
- is_json
- is_datetime
- is_md5_result
- 時間日期
- msectime
- 字符串
- rand_char
- filter_sql
- start_with
- exception_to_str
- 數據加解密
- aes_encrypt
- aes_decrypt
- rsa_encrypt
- rsa_decrypt
- rsa_sign
- rsa_sign_verify
- JS公共方法庫
- 調用說明
- 數據類型
- varType
- 判斷
- isMobile
- isObj
- isEmptyObj
- isArray
- isEmptyArray
- isString
- isEmptyString
- isBool
- isNumber
- isFloat
- isFunction
- isUndefined
- isJson
- isCsv
- isXls
- isXlsx
- 字符串
- fileExt
- fileNameExt
- currTimestamp
- currDatetime
- timestampFormat
- 對象
- objSupp
- 圖片
- previewImg
- url
- url
- urlParam
- urlPushParam
- 頁面
- openNewPage
- openTab
- openPopup
- rawPageWin
- redirectTab
- redirectLogin
- isPopupPage
- isTabPage
- currPageId
- close
- closeCurr
- closeAll
- 網絡
- request
- 數據加解密
- aesEncrypt
- aesDecrypt
- rsaEncrypt
- rsaDecrypt
- rsaSign
- rsaSignVerify
- 附錄
- 升級指導
- 更新日志