- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自动验证
⾃动验证
⾃动验证是ThinkPHP模型层提供的⼀种数据验证⽅法,可以在使⽤create创建数据对
象的时候⾃动进⾏数据验证
验证规则
数据验证可以进⾏数据类型、业务规则、安全判断等⽅⾯的验证操作
数据验证有两种⽅式:
1. 静态⽅式:在模型类⾥⾯通过$_validate属性定义验证规则
2. 动态⽅式:使⽤模型类的validate⽅法动态创建⾃动验证规则
⽆论是什么⽅式,验证规则的定义是统⼀的规则,定义格式为:
array(
array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]),
array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]),
);
说明
验证字段 (必须)
需要验证的表单字段名称,这个字段不⼀定是数据库字段,也可以是表单的⼀些辅助
字段,例如确认密码和验证码等等 有个别验证规则和字段⽆关的情况下,验证字段
是可以随意设置的,例如expire有效期规则是和表单字段⽆关的 如果定义了字段映
射的话,这⾥的验证字段名称应该是实际的数据表字段⽽不是表单字段
验证规则 (必须)
要进⾏验证的规则,需要结合附加规则,如果在使⽤正则验证的附加规则情况下,系
统还内置了⼀些常⽤正则验证的规则,可以直接作为验证规则使⽤,包括:require 字
段必须、email 邮箱、url URL地址、currency 货币、number 数字
提⽰信息 (必须)
⽤于验证失败后的提⽰信息定义
验证条件 (可选)
包含下⾯⼏种情况:
elf::EXISTS_VALIDATE 或者0 存在字段就验证 (默认)
elf::MUST_VALIDATE 或者1 必须验证
elf::VALUE_VALIDATE或者2 值不为空的时候验证
附加规则 (可选)
配合验证规则使⽤,包括下⾯⼀些规则:
规则 说明
regex 正则验证,定义的验证规则是⼀个正则表达式 (默认)
function 函数验证,定义的验证规则是⼀个函数名
callback ⽅法验证,定义的验证规则是当前模型类的⼀个⽅法
confirm 验证表单中的两个字段是否相同,定义的验证规则是⼀个字段名
equal 验证是否等于某个值,该值由前⾯的验证规则定义
notequal 验证是否不等于某个值,该值由前⾯的验证规则定义 (3.1.2版本新增)
in 验证是否在某个范围内,定义的验证规则可以是⼀个数组或者逗号分割的
字符串
notin 验证是否不在某个范围内,定义的验证规则可以是⼀个数组或者逗号分割
的字符串 (3.1.2版本新增)
验证长度,定义的验证规则可以是⼀个数字 (表⽰固定长度)或者数字范
length 围 (例如3,12 表⽰长度从3到12的范围)
between 验证范围,定义的验证规则表⽰范围,可以使⽤字符串或者数组,例如
1,31或者array(1,31)
notbetween 验证不在某个范围,定义的验证规则表⽰范围,可以使⽤字符串或者数组
(3.1.2版本新增)
验证是否在有效期,定义的验证规则表⽰时间范围,可以到时间,例如可
expire 以使⽤ 20 12-1-15,20 13-1-15 表⽰当前提交有效期在20 12-1-15到20 13-1-15
之间,也可以使⽤时间戳定义
验证IP是否允许,定义的验证规则表⽰允许的IP地址列表,⽤逗号分隔,
ip_allow 例如20 ,20
验证IP是否禁⽌,定义的验证规则表⽰禁⽌的ip地址列表,⽤逗号分隔,
ip_deny 例如20 ,20
验证是否唯⼀,系统会根据字段⽬前的值查询数据库来判断是否存在相同
unique 的值,当表单数据中包含主键字段时unique不可⽤于判断主键字段本⾝
验证时间 (可选)
elf::MODEL_INSERT或者1新增数据时候验证
elf::MODEL_UPDATE或者2编辑数据时候验证
文档评论(0)