THINKPHP_动态验证validate()

$data=I(‘post.‘,‘‘,‘trim‘);
$rules = array(
     array(‘name‘,‘‘,‘数据名称已存在‘,0,‘unique‘,1),
     //array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]),
     array(‘verify‘,‘require‘,‘验证码必须!‘), //默认情况下用正则进行验证
     array(‘name‘,‘‘,‘帐号名称已经存在!‘,0,‘unique‘,1), // 在新增的时候验证name字段是否唯一
     array(‘value‘,array(1,2,3),‘值的范围不正确!‘,2,‘in‘), // 当值不为空的时候判断是否在一个范围内
     array(‘repassword‘,‘password‘,‘确认密码不正确‘,0,‘confirm‘), // 验证确认密码是否和密码一致
     array(‘password‘,‘checkPwd‘,‘密码格式不正确‘,0,‘function‘), // 自定义函数验证密码格式
);
if(!M(‘data‘)->validate($rules)->create($data)){
    $this->error(M(‘data‘)->getError());

验证规则列表:


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


验证是否在有效期,定义的验证规则表示时间范围,可以到时间,例如可以使用 2012-1-15,2013-1-15 表示当前提交有效期在2012-1-15到2013-1-15之间,也可以使用时间戳定义


ip_allow


验证IP是否允许,定义的验证规则表示允许的IP地址列表,用逗号分隔,例如201.12.2.5,201.12.2.6


ip_deny


验证IP是否禁止,定义的验证规则表示禁止的ip地址列表,用逗号分隔,例如201.12.2.5,201.12.2.6


unique


验证是否唯一,系统会根据字段目前的值查询数据库来判断是否存在相同的值,当表单数据中包含主键字段时unique不可用于判断主键字段本身

THINKPHP_动态验证validate(),布布扣,bubuko.com

时间: 2024-10-13 01:44:02

THINKPHP_动态验证validate()的相关文章

thinkphp自动验证中的静态验证和动态验证和批量验证

1.静态定义 在模型类里面预先定义好该模型的自动验证规则,我们称为静态定义. 举例说明,我们在模型类里面定义了$_validate属性如下: class UserModel extends Model{ protected $_validate = array( array('verify','require','验证码必须!'), //默认情况下用正则进行验证 array('name','','帐号名称已经存在!',0,'unique',1), // 在新增的时候验证name字段是否唯一 ar

Spring MVC 数据验证——validate编码方式

1.导入jar包 validation-api-1.0.0.GA.jar这是比較关键的一个jar包,主要用于解析注解@Valid. hibernate-validator-4.3.2.Final.jar能够下载最新的.这个包在注解方式编码中尤为重要. 其它的就是一些日志包(不一定全不须要):jboss-logging-3.1.3.GA.jar.slf4j-log4j12-1.6.1.jar 2.web项目的结构图 项目的主要结构图,不清楚web项目的环境的能够自己学一下.推荐去慕课网上找视频看

Spring MVC 数据验证——validate注解方式

1.说明 学习注解方式之前,应该先学习一下编码方式的spring注入.这样便于理解验证框架的工作原理.在出错的时候,也能更好的解决问题.所以本次博客教程也是基于编码方式,只是在原来的基础加上注解方式. 2.配置信息 web.xml不需要改变的 hello-servlet.xml将原来的加载方式,改为自动加入有hibernate和Spring提供的validate的默认类,配置如下: <?xml version="1.0" encoding="UTF-8"?&g

jQuery 即时验证Validate

登录,账号和密码的及时验证 $(function () { //#form1 表单的ID $("#form1").validate({ rules:{ userName:{ required:true }, password:{ required:true } }, messages:{ userName:{ required:"用户名不能为空" }, password:{ required:"密码不能为空" } } }) })  

jquery表单验证validate

在做表单验证时,如果表单信息比较多,导致提交按钮和错误信息没在已屏显示,就会导致无法提交,又没有友好提示的问题. 理想的解决办法就是在验证发生错误时,自动定位到错误提示的地方,方便用户查看和修改. $("#Send").click(function (e) { // 这行是 Opera 的补丁, 少了它 Opera 是直接用跳的而且画面闪烁 $body = (window.opera) ? (document.compatMode == "CSS1Compat" ?

v-show和element中表单验证validate起到的化学反应

说起v-show和v-if,进行前端开发的大家一定不会陌生,他们都是用来控制标签元素的显示与隐藏的,他们的区别就是v-show会把标签渲染出来,只是会隐藏起来,相当于visibility:hidden和opacity:0;的作用,而v-if如果为false的话,则标签都不会被渲染,相当于display:none;的作用,那么他们到底会和表单验证产生什么化学反应呢,下面就来看看我踩的这个坑吧. 这里我们可以看到element 上对于validate的一个解释,也就是他会帮我们验证表单里面的数据是否

thinkphp 控制器controller完成数据验证,validate()、create()

public function person_pic_post(){ $uid = $this->userid; $rules = array( //array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间) array('acard', 'require', '身份证正面不能为空!', 1 ), array('bcard', 'require', '身份证反面不能为空!', 1 ), ); $users_model=M("persion_info"); if($d

Thinkphp+AJAX动态验证用户输入是否合法

遇到用户注册等情况时,如果等用户输入所有信息,点击注册按钮提交后,再验证输入是否正确,体验很不好,而且很浪费用户的时间,增加注册成本,这里提供一个例子,演示了怎么使用ajax进行单步验证,使用thinkphp 3.2框架,环境WAMPServer 2.4,版本PHP 5.4.16+ Apache 2.4.4+ MySql 5.6.12 一.数据库设计: 数据库名 thinkphp 表名 tp_user 其中tp_是表前缀,可以在config.php中定义,操作表的时候只用user就行 二.页面设

WTForms 表单动态验证

class UserDetails(Form): group_id = SelectField(u'Group', coerce=int) def edit_user(request, id): user = User.query.get(id) form = UserDetails(request.POST, obj=user) form.group_id.choices = [(g.id, g.name) for g in Group.query.order_by('name')] choi