FuelPHP 系列(四) ------ Validate 验证
一、可用规则:
1、required 不能为 null, false or empty string.;
2、required_with 关联某个字段,关联字段有值则该字段必须有值;
3、match_value 两个参数:param1,要匹配的字符;param2,是否严格(true则全等,===);
4、match_pattern 匹配 preg;
5、match_field 匹配 field,比如再次输入密码确认(全等===);
6、match_collection 两个参数:param1,要匹配的array;param2,是否严格;
7、min_length 最小长度;
8、max_length 最大长度;
9、exact_length 长度是否是指定长度;
10、valid_date 两个参数:param1,时间 formate;param2,是否严格(默认为 true);
11、valid_email 单个邮箱验证;
12、valid_emails 多个邮箱验证,参数为分隔符(默认为 commas);
13、valid_url URL 验证;
14、valid_ip IP 验证,参数为 'ipv4' or 'ipv6';
15、numeric_min 数字最小值(不是数字的看做 0);
16、numeric_max 数字最大值(不是数字的看做 0);
17、numeric_between 两个参数:min,max;
18、valid_string 验证 string,参数为 array();
string 验证规则:
| FLAG | DESCRIPTION |
| alpha | 字母 |
| uppercase | 只允许大写字母 |
| lowercase | 只允许小写字母 |
| specials | 允许特殊字符 |
| numeric | 数字 |
| spaces | 空格 |
| newlines | 换行符 |
| tabs | TAB键 |
| dots | 点 |
| commas | 逗号 |
| punctuation | 允许点、逗号、感叹号、问号、冒号和半冒号 |
| dashes | 允许中横线、下划线 |
| singlequotes | 单引号 |
| doublequotes | 双引号 |
| quotes | 允许单引号、双引号 |
| forwardslashes | 斜杠 |
| backwardslashes | 反斜杠 |
| slashes | 允许斜杠、反斜杠 |
| brackets | 括号 |
| braces | 大括号 |
| utf8 | 向正则表达式添加UTF8修饰符 |
二、可扩展验证方法,方法名以 '_validation_' 开头,例如:
// 防止重复添加
public static function _validation_unique($val, $options)
{
list($table, $field) = explode('.', $options); $result = DB::select(DB::expr("LOWER (\"$field\")"))
->where($field, '=', Str::lower($val))
->from($table)->execute(); return ! ($result->count() > 0);
} // 判断是否为大写字母
public function _validation_is_upper($val)
{
return $val === strtoupper($val);
}
*获取当前验证 object,验证 field
//获取当前验证 object
$active = Validation::active();
//获取当前验证字段
$field = Validation::active_field();
$field = $active::actice_field();
//当前 field 的 label
$label = $active::active_field()->get_attribute('label');
//当前验证设置错误信息
Validation::active()->set_message('unique', 'The field :label must be unique, but :value has already been used');
三、验证方法
$val = Validation::forge();
$val->add_field('name', '名字','required|unique');
//或者
$val->add('name', '名字')->add_rule('required')->add_rule('unique');
$val->set_message('required', 'You have to fill in your :label');
//验证
$val->run();
//获取错误信息
$val->error();
$val->error_message()
//获取验证过的信息
$val->validated('username');
//加载自己扩展的验证类
$val->add_callable('Myrules'); //静态加载,只能调用类中的 static 方法
$val->add_callable(new MyRules()); //非静态加载
FuelPHP 系列(四) ------ Validate 验证的更多相关文章
- jQuery Validate验证框架详解
转自:http://www.cnblogs.com/linjiqin/p/3431835.html jQuery校验官网地址:http://bassistance.de/jquery-plugins/ ...
- ASP.NET MVC下的四种验证编程方式[续篇]
在<ASP.NET MVC下的四种验证编程方式>一文中我们介绍了ASP.NET MVC支持的四种服务端验证的编程方式("手工验证"."标注Validation ...
- ASP.NET MVC下的四种验证编程方式
ASP.NET MVC采用Model绑定为目标Action生成了相应的参数列表,但是在真正执行目标Action方法之前,还需要对绑定的参数实施验证以确保其有效性,我们将针对参数的验证成为Model绑定 ...
- ASP.NET MVC下的四种验证编程方式【转】
ASP.NET MVC采用Model绑定为目标Action生成了相应的参数列表,但是在真正执行目标Action方法之前,还需要对绑定的参数实施验证以确保其有效 性,我们将针对参数的验证成为Model绑 ...
- SQL Server 2008空间数据应用系列四:基础空间对象与函数应用
原文:SQL Server 2008空间数据应用系列四:基础空间对象与函数应用 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. ...
- 系列四TortoiseSvn客户端软件
原文:系列四TortoiseSvn客户端软件 TortoiseSvn介绍 TortoiseSvn 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录.文件保存在中 ...
- 【转】jQuery Validate验证框架详解
jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一.导入js库 <script type=& ...
- 分布式系列四: HTTP及HTTPS协议
分布式系列四: HTTP及HTTPS协议 非常全面的一篇HTTP的文章: 关于HTTP协议,一篇就够了 还有一个帮助理解HTTPS的文章: 也许,这样理解HTTPS更容易 本文的一些描述摘自这篇文章 ...
- atitit.jQuery Validate验证框架详解与ati Validate 设计新特性
atitit.jQuery Validate验证框架详解与ati Validate 设计新特性 1. AtiValidate的目标1 2. 默的认校验规则1 2.1. 使用方式 1.metadata用 ...
- jQuery Validate验证框架详解(jquery.validate.min.js)
原博客 jQuery Validate验证框架详解 jQuery校验官网地址:https://jqueryvalidation.org/ 一.导入js库 <script type="t ...
随机推荐
- WorldWind源码剖析系列:四元数类Quaternion
PluginSDK中的Quaternion4d类可能是感觉Microsoft.DirectX. Quaternion类不太实用或不够用,自己有重新写的. 四元数是英国数学家哈密顿(W.R.Hamilt ...
- OpenCV——Brisk特征检测、匹配与对象查找
检测并绘制特征点: #include <opencv2/opencv.hpp> #include <opencv2/xfeatures2d.hpp> #include < ...
- mysql linux 安装卸载
mysql安装包官网https://dev.mysql.com/downloads/mysql/5.7.html#downloads wget https://dev.mysql.com/get/Do ...
- 包学会之浅入浅出 Vue.js:开学篇
2016年,乃至接下来整个2017年,如果你要问前端技术框架什么最火,那无疑就是前端三巨头:React.Angular.Vue.没错,什么jQuery,seaJs,gulp等都逐渐脱离了热点.面试的时 ...
- FPGA按一下按键,对应端口输出单个脉冲
对于FPGA的verilog语言,,,规定一个变量不能在多个always中被赋值.但是可以在多个alway块中做判断--结合状态机思想 module state(key,led,clk); input ...
- struts2_maven_learning
以下为学习maven struts2 的学习过程,现记录如下. 1.创建一个完善的maven程序 maven:(jar) 1)maven project 2)facet 3)pom.xml,depen ...
- Intel 面试(就不该报外企,英语是硬伤)
1 自我介绍(用英文) 啊啊啊,能不能用中文啊,最好用英文,蒙了.... 2 你对硬件了解吗,对X86系统了解吗,知道CPU是怎么处理读一个数据的吗,说说cpu从读一个数据,到内存怎么进行处理? 说的 ...
- Python3入门(四)——Python函数
一.概述 python和其他高级语言一样,支持函数 注意和scala不一样,结果必须使用return,否则默认return None!这和scala最后一个值作为返回是不一样的! 二.函数调用 和其他 ...
- 基于TLS证书手动部署kubernetes集群(下)
一.master节点组件部署 承接上篇文章--基于TLS证书手动部署kubernetes集群(上),我们已经部署好了etcd集群.flannel网络以及每个节点的docker,接下来部署master节 ...
- 20155304《网络对抗》Exp4 恶意代码分析
20155304<网络对抗>Exp4 恶意代码分析 实践内容 1.系统运行监控 1.1使用schtasks指令监控系统运行 我们在C盘根目录下建立一个netstatlog.bat的文本文件 ...