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 ...
随机推荐
- 搞死人的contextRoot;weblogic9.2
默认情况下: 两个app-deployment同时部署到了一台weblogic服务器的同一个domain下面的时候 /mysite/www/www/WEB-INF/weblogic.xml /mysi ...
- Working With JSON
JavaScript对象表示法(JSON)是用于将结构化数据表示为JavaScript对象的标准格式,通常用于在网站上表示和传输数据(例如从服务器向客户端发送一些数据,因此可以将其显示在网页上). J ...
- 20155217《网络对抗》Exp09 Web安全基础实践
20155217<网络对抗>Exp09 Web安全基础实践 实践内容 关于webgoat:询问了很多人在安装webgoat时出现了错误,安装失败,因此直接通过同学copy了老师的虚拟机进行 ...
- 20155318 《网络攻防》Exp2 后门原理与实践
20155318 <网络攻防>Exp2 后门原理与实践 基础问题回答 例举你能想到的一个后门进入到你系统中的可能方式? 下载软件前要勾选一些用户协议,其中部分就存在后门进入系统的安全隐患. ...
- python基础学习1-变量定义赋值,屏幕输入输出
一.变量定义赋值 输入输出屏幕显示 : name = input("input is your name") age =int( input("input is your ...
- 解决 引入本地jar包后 maven无法编译的问题及部署war包缺失本地jar包的问题
参考:https://blog.csdn.net/wang864676212/article/details/82626922 pom.xml 引入 <plugin> <plugin ...
- CS100.1x Introduction to Big Data with Apache Spark
CS100.1x简介 这门课主要讲数据科学,也就是data science以及怎么用Apache Spark去分析大数据. Course Software Setup 这门课主要介绍如何编写和调试Py ...
- [BZOJ2687]交与并[决策单调性]
题意 给定 \(n\) 个区间,我们定义区间集合 \(S(|S|>1)\) 的权值为 区间交 \(\times\) 区间并,找出权值最大的区间集合. \(n\le 10^6\) 分析 首先排除区 ...
- LeetCode Generate Parentheses (DFS)
题意 Given n pairs of parentheses, write a function to generate all combinations of well-formed parent ...
- Synchronous/Asynchronous:任务的同步异步,以及asynchronous callback异步回调
两个线程执行任务有同步和异步之分,看了Quora上的一些问答有了更深的认识. When you execute something synchronously, you wait for it to ...