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 ...
随机推荐
- ethereum/EIPs-725
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-725.md eip title author discussions-to status ...
- CentOS7.5服务器安装(并添加用户) anaconda3 并配置 PyTorch1.0
===========================================================================================[admin@lo ...
- (四) DRF认证, 权限, 节流
一.Token 认证的来龙去脉 摘要 Token 是在服务端产生的.如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端.前端可以在每次请求的时候带上 To ...
- Android 配置从GitHub上下载下来的不太规则的源代码库,并保证程序正常运行
用过github的朋友一定会发现,我们在github上下载下来的源代码(例子和库),放到eclipse中并不是总能正常运行的,它有可能会出现这样或者那样的错误,例如:找不到jar包,配置文件错误,R文 ...
- 提高SQL查询效率的30种方法
转载:提高SQL查询效率的30种方法 内容摘录如下: 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中 ...
- Scala _ 下划线
1.引入包中的全部方法 import math._ //引入包中所有方法,与java中的*类似 2.表示集合元素 val a = (1 to 10).filter(_%2==0).map(_*2) / ...
- 四、MYSQL的数据类型
类型选择原则 1.储存空间越少越好: 2.简单就好:例如整型比字符串更简单: 3.尽量避免null: 一.整数类型 1.有tinyint(8位).SMALLINT(16位).MEDIUMINT(24位 ...
- switch语句的执行过程
switch语句的执行规则如下: 1.从第一个case开始判断,不匹配则跳到下一个case继续判断: 2.遇到break则跳出switch语句: 3.default一般是没有匹配项才执行的,一般是放在 ...
- python 回溯法 子集树模板 系列 —— 4、数字组合问题
问题 找出从自然数1.2.3.....n中任取r个数的所有组合. 例如,n=5,r=3的所有组合为: 1,2,3 1,2,4 1,2,5 1,3,4 1,3,5 1,4,5 2,3,4 2,3,5 2 ...
- 【SP1811】LCS - Longest Common Substring
[SP1811]LCS - Longest Common Substring 题面 洛谷 题解 建好后缀自动机后从初始状态沿着现在的边匹配, 如果失配则跳它的后缀链接,因为你跳后缀链接到达的\(End ...