> 说明
在验证器常规的规则校验通过后,可在验证器中书通过 `handleData` 方法对数据进行进一步的处理。
方法:handleData(array $raw_data,$scene)
参数:
| 参数 | 类型 | 说明 |
| --- | --- | --- |
| **raw_data** | 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 $raw_data, $scene): array {
$data = $raw_data;
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
- head_style
- head_script
- 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)
- 下拉搜索(dropdown_search)
- 树(tree)
- 自定义字段
- 单一字段调用
- 概述
- 示例
- 表格构建器
- 基础示例
- 初始化
- 链式操作
- state
- url
- page
- limit
- limits
- filter
- filterValidate
- toolbar
- defaultToolbar
- import
- cols
- count
- items
- event
- 渲染输出
- 表头配置
- 使用说明
- 操作栏(action)
- 时间日期(datetime)
- 单图(img)
- 多图(imgs)
- 单文件(file)
- 多文件(files)
- 拖拽排序(drag_sort)
- 颜色呈现(color)
- 地区呈现(area)
- 枚举(enum)
- 自定义表头
- JS事件
- 异步事件监听
- 导入构建器
- 基础示例
- 初始化
- 链式操作
- sheets
- 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_integer
- is_json
- is_datetime
- is_md5_result
- 时间日期
- msectime
- 字符串
- rand_char
- filter_sql
- start_with
- exception_to_str
- JS公共方法库
- 调用说明
- 数据类型
- varType
- 判断
- isMobile
- isObj
- isEmptyObj
- isArray
- isEmptyArray
- isString
- isEmptyString
- isBool
- isNumber
- isFloat
- 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
- 附录
- 升级指导
- 更新日志