资料介绍
软件简介
微擎表单验证是一个让你的表单验证更为方便,快捷,安全的扩展,满足你的一切验证需求。
中文 | English
目录
安装
使用composer命令
composer require w7/engine-validate
完整文档查看完整文档
简单验证
支持简单定义一个验证器并进行验证:
try {
$data = Validate::make([
'user' => 'required|email',
'pass' => 'required|lengthBetween:6,16',
], [
'user.required' => '请输入用户名',
'user.email' => '用户名格式错误',
'pass.required' => '请输入密码',
'pass.lengthBetween' => '密码长度为6~16位',
])->check($data);
} catch (ValidateException $e) {
echo $e->getMessage();
}
如果验证通过,则返回所有通过验证的值,如未通过,则抛出一个W7\\Validate\\Exception\\ValidateException异常
验证器定义
为具体的验证场景或者数据表单定义验证器类,我们需要继承W7\\Validate\\Validate类,然后实例化后直接调用验证类的check方法即可完成验证,下面是一个例子:
我们定义一个LoginValidate验证器类用于登录的验证。
class LoginValidate extends Validate
{
protected $rule = [
'user' => 'required|email',
'pass' => 'required|digits_between:6,16',
];
protected $message = [
'user.required' => '请输入用户名',
'user.email' => '用户名格式错误',
'pass.required' => '请输入密码',
'pass.digits_between' => '密码长度为6~16位',
];
}
类属性定义的错误消息,优先级要高于自定义规则中的默认回复,高于自定义规则方法返回的错误
数据验证
$data = [
'user' => '123@qq.com',
'pass' => ''
];
$validate = new LoginValidate();
$validate->check($data);
此时会抛出一个W7\\Validate\\Exception\\ValidateException异常,message为请输入密码
$data = [
'user' => '123@qq.com',
'pass' => '123456'
];
$validate = new LoginValidate();
$data = $validate->check($data);
验证成功,并返回通过验证的值,返回的值为数组类型
验证数组
验证表单的输入为数组的字段也不难。你可以使用 「点」方法来验证数组中的属性。例如,如果传入的 HTTP 请求中包含search[keyword]字段, 可以如下验证:
protected $rule = [
'search.order' => 'numeric|between:1,2',
'search.keyword' => 'chsAlphaNum',
'search.recycle' => 'boolean',
];
你也可以验证数组中的每个元素。例如,要验证指定数组输入字段中的每一个 id 是唯一的,可以这么做:
protected $rule = [
'search.*.id' => 'numeric|unique:account'
];
数组规则的错误消息的定义也一样
protected $message = [
'search.order.numeric' => '排序参数错误',
'search.order.between' => '排序参数错误',
'search.keyword.chsAlphaNum' => '关键词只能包含中文,字母,数字',
'search.recycle.boolean' => '参数错误:recycle',
];
验证器类属性
$rule
用户定义验证器的验证规则,也可以通过setRules方法来进行设置,此方法为叠加,如果参数为null则为清空全部规则
// 类中定义
protected $rule = [
'user' => 'required'
];
// 使用方法定义
$v->setRules([
'user' => 'required'
]);
$message
用户定义验证器的错误信息,也可以通过setMessages方法来进行设置,此方法为叠加,如果参数为null则为清空全部错误消息
// 类中定义
protected $message = [
'user.required' => '账号必须填写'
];
// 使用方法定义
$v->setMessages([
'user.required' => '账号必须填写'
]);
$scene
定义验证场景的数据,用于指定验证场景对应的验证字段等,详细用法查看验证场景一节,同样也可以通过setScene方法来进行设置,此方法为叠加,如果参数为null则为清空全部验证场景
// 类中定义
protected $scene = [
'login' => ['user', 'pass']
];
// 使用方法定义
$v->setScene([
'login' => ['user', 'pass']
]);
$event
定义此验证器下的全局事件,详细用法查看事件一节
protected $event = [
CheckSiteStatus::class
];
$customAttributes
定义验证字段的名称,也可以通过setCustomAttributes方法来进行设置,此方法为叠加,如果参数为null则为清空全部字段名称, 错误消息中的:attribute会使用下面的值对应的替换
protected $customAttributes = [
'user' => '账号',
'pass' => '密码'
];
$default
定义字段的默认值
protected $default = [
'name' => '张三'
];
关于默认值的详情请查看默认值一节
$filter
用于数据验证后处理数据
protected $filter = [
'name' => 'trim'
];
关于过滤器的详情请查看过滤器一节
$ruleMessage
类方法规则的错误信息
protected $ruleMessage = [
':attribute的值只能具有中文'
];
点击查看示例
$filled
所有验证的字段在存在时不能为空,如果此属性值为true,所有规则会自动增加filled规则,默认为true
当出现以下情况时,不会自动添加filled规则
-
验证规则中存在
filled,nullable,accepted,present,required,required_if,required_unless,required_with,required_with_all,required_without,required_without_all规则 - 验证规则存在extendImplicit定义的规则
- 验证规则存在extendImplicitRule定义的规则
-
验证规则实现了
Itwmw\\Validation\\Support\\Interfaces\\ImplicitRule标记接口
protected bool $filled = true;
$regex
预定义正则表达式验证规则,详情查看正则表达式规则
protected $regex = [
'number' => '/^\\d+$/'
];
- 上海长擎实业公司产品画册
- SystemVerilog的正式验证和混合验证 24次下载
- 16位CRC验证码生成VI工具下载 55次下载
- 一种混合的云数据完整性验证方案 9次下载
- 如何使用PHP查询MYSQL生成动态表单 8次下载
- Visual_Foxpro6.0如何进行表单设计? 10次下载
- 微信小程序如何开发?微信小程序教程视频常用组件API开发项目实战 88次下载
- 版图验证方法说明 0次下载
- Activiti工作流结合外置表单技术研究 16次下载
- 智能手表单节电池充电器原理图 PCB源文件 0次下载
- 智能水表单片机系统参考 111次下载
- JAVA教程之简单的表单程序 6次下载
- 基于SSH框架的动态表单设计与实现 42次下载
- Struts2 极速表单验证框架使用说明书
- 超生倒车报擎电路
- fpga验证和uvm验证的区别 1720次阅读
- 如何解决表单重复提交的问题 1196次阅读
- Java 中验证码的使用 1089次阅读
- fpga验证及其在soc验证中的作用有哪些 1178次阅读
- 基于形式的高效 RISC-V 处理器验证方法 692次阅读
- 验证和确认的区别和关系 5736次阅读
- 验证组件配置参数 640次阅读
- IC验证的主要工作流程和验证工具是什么? 1732次阅读
- 形式验证入门之基本概念和流程 2309次阅读
- 如何利用D3引擎来创建APP和短信推送规则 1296次阅读
- 简单地描述了如何用机器学习绕过E-ZPass New York网站的验证码 6391次阅读
- 基于System Verilog的可重用验证平台设计及验证结果分析 2703次阅读
- 验证设计和创建可实现的设计 786次阅读
- 基于VMM验证方法学的MCU验证环境 3364次阅读
- 基于OVM验证平台的IP芯片验证 2844次阅读
下载排行
本周
- 1人工智能+消费:技术赋能与芯片驱动未来
- 15.25 MB | 4次下载 | 免费
- 2⼯业电源&模块电源产品⼿册
- 15.40 MB | 1次下载 | 免费
- 379M15 TO-252三端稳压IC规格书
- 0.86 MB | 次下载 | 免费
- 4MBRD20150CT TO-252肖特基二极管规格书
- 0.54 MB | 次下载 | 免费
- 5自动锁螺丝运动控制系统用户手册
- 6.65 MB | 次下载 | 5 积分
- 6奥特光耦产品手册
- 4.83 MB | 次下载 | 免费
- 7SMA系列10MHz~40GHz同轴检波器
- 559.60 KB | 次下载 | 免费
- 8CD7388CZ:7W×4 四通道音频功率放大电路技术手册
- 0.39 MB | 次下载 | 10 积分
本月
- 1元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 241次下载 | 免费
- 2元宇宙底层硬件系列报告
- 13.42 MB | 184次下载 | 免费
- 32022 年展望報告 – 半導體產業
- 1.43 MB | 136次下载 | 免费
- 4晶振与滤波器应用电路《电子工程师必备:元器件应用宝典》
- 1.57 MB | 90次下载 | 免费
- 5汽车电子行业深度解析:智能化与电动化方兴未艾
- 6.47 MB | 71次下载 | 免费
- 6中国DPU行业白皮书
- 23.80 MB | 37次下载 | 免费
- 7晶科鑫代理线-微盟电子2021年度产品目录选型手册
- 14.75 MB | 27次下载 | 免费
- 8SJK晶振产品目录-简化版-2022
- 13.77 MB | 20次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935134次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420064次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233089次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191425次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183352次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81602次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73822次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65991次下载 | 10 积分
电子发烧友App






创作
发文章
发帖
提问
发资料
发视频
上传资料赚积分
评论