- 浏览: 121226 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
sfcc:
mysql函数-根据经纬度坐标计算距离 -
chaojijing_02:
-¥
'¤
'-'¤
这些是怎么出来的。
java反射之ObjectAnalyzer -
Technoboy:
稍微解释一下就好了...
java反射之ObjectAnalyzer -
peterwei:
lesorb 写道JAVA2中关于反射的应用主要是用来分析类结 ...
java反射之ObjectAnalyzer -
deepfuture:
不是吧,内核中使用汇编语言实现手,可快了
c语言实现字符串拷贝
在CakePHP中,对于模型数据的验证是非常简单的,下面就是我在Blog Model中用到的验证方法:
当然,这是必须的.虽然,客户端验证看起来更加友好,但为了最大限度的防止数据有效性,server的数据验证显的尤为重要!
下面我将全面的绍介下,CakePHP中对于数据验证的规则设定和内置函数以及处理方法:
验证规则
1. Simple Rules (普通的)
2. One Rule Per Field (单的)
3. Multiple Rules per Field (多个)
CakePHP在frame内部内置了很多(详见cake/libs/validation.php中)非常常见的函数来实现了数据验证:
一、内置验证规则
1. alphaNumeric
只包含字母和数字:
2. between
数据长度必须属于一个指定范围,必须提供最小值和最大值:
3. blank
字符是否为空,或仅包含空白字符,例如space,tab :
4. cc
验证信用卡号码是否有效。它需要3个参数:'type', 'deep' and 'regex':
5. comparison
用来比较数值:
6. date
确保数据提交有效的日期格式:
7. decimal
用来检查提交的数据是否是一个有效的十进制整数:
8. email
用来检查输入是否是一个有效的 email 地址(非常常用):
9. equalTo
将确保该值等于,和同类型的特定价值:
10. extension
检查文件的扩展名是否为指定格式,一般用array来限定扩展名:
11. ip
确保提交的是有效的IPv4地址:
12. isUnique
确保该字段是唯一的:
13. minLength
确保数据符合最小长度要求:
14. maxLength
确保数据符合最大长度要求:
15. money
确保该值是一个有效的货币:第二个参数定义符号位于(left/right):
16. inList
这条规则将确保该值属于某一(通常是array)集合:
17. numeric
是否是一个有效的号码(数字):
18. notEmpty
确保字段不为空(常用):
19. phone
验证一个合法的电话号码,缺省为'all'.
如果你想验证某个国家的电话号码,你可以提供一个表达的第二个参数,用以支持其它格式:
20. postal
用来验证邮政编码,缺省为'null'.
可以是美国(us),加拿大(ca) ,英国(uk),德国( de )和比利时(be).
对于其他邮递区号格式,您可以提供一个正则表达式作为第二个参数;
21. range
保证值是在特定的范围内:
22. ssn
ssn(美国)有效的社会安全号码,可以是美国(us),丹麦(dk),荷兰(nl) .
23. url
检查有效的URL格式。
支持HTTP(s)的FTP(s),file,news和的Gopher协议:
二、Custom Validation Rules (自定义验证)
1. Custom Regular Expression Validation (自定义正则表达式验证)
以上,检查的username只包含字母和整数,并且不少于四个字符.
2. Custom Validataion Methods (自定义方法验证)
这个自定义方法避免了code在数据库中出现的次数不超过一定的次数(25).
以上就是CakePHP中关于server端数据验证的方法汇总,如有缈误,欢迎指出,欢迎留言评论!
/** * Blog validate rule * * @var array * @access public */ var $validate = array( 'title'=>array( 'notEmpty' => array( 'rule' => VALID_NOT_EMPTY, 'message' =>'The title is not empty' ), 'notBlank' => array( 'rule' => '/[^\\s]/', 'message' => 'Please input the title!' ) ), 'description'=>array( 'notEmpty' => array( 'rule' => VALID_NOT_EMPTY, 'message' =>'The blog\'s content is not empty' ), 'notBlank' => array( 'rule' => '/[^\\s]/', 'message' => 'Please input the content!' ) ) );
当然,这是必须的.虽然,客户端验证看起来更加友好,但为了最大限度的防止数据有效性,server的数据验证显的尤为重要!
下面我将全面的绍介下,CakePHP中对于数据验证的规则设定和内置函数以及处理方法:
验证规则
1. Simple Rules (普通的)
var $varlidate = array('fieldName' => 'ruleName');
2. One Rule Per Field (单的)
var $varlidate = array( 'fieldName1' => array( 'rule' => 'ruleName', //or: array('ruleName', 'param1', 'param2' ...) 'required' => true, 'allowEmpty' => false, 'on' => 'create', //or: 'update' 'message' => 'Error Message' ) );
3. Multiple Rules per Field (多个)
var $validate = array( 'fieldName' => array( 'ruleName' => array( 'rule' => 'ruleName', ), 'ruleName2' => array( 'rule' => 'ruleName2', ) ) );
CakePHP在frame内部内置了很多(详见cake/libs/validation.php中)非常常见的函数来实现了数据验证:
一、内置验证规则
1. alphaNumeric
只包含字母和数字:
var $validate = array( 'login' => array( 'rule' => 'alphaNumeric', 'message' => 'Usernames must only contain letters and numbers.' ) );
2. between
数据长度必须属于一个指定范围,必须提供最小值和最大值:
var $validate = array( 'password' => array( 'rule' => array('between', 5, 15), 'message' => 'Passwords must be between 5 and 15 characters long.' ) );
3. blank
字符是否为空,或仅包含空白字符,例如space,tab :
var $validate = array( 'id' => array( 'rule' => 'blank', 'on' => 'create' ) );
4. cc
验证信用卡号码是否有效。它需要3个参数:'type', 'deep' and 'regex':
var $validate = array( 'ccnumber' => array( 'rule' => array('cc', array('visa', 'maestro'), false, null), 'message' => 'The credit card number you supplied was invalid.' ) );
5. comparison
用来比较数值:
var $validate = array( 'age' => array( 'rule' => array('comparison', '>=', 18), 'message' => 'Must be at least 18 years old to qualify.' ) ); var $validate = array( 'age' => array( 'rule' => array('comparison', 'greater or equal', 18), 'message' => 'Must be at least 18 years old to qualify.' ) );
6. date
确保数据提交有效的日期格式:
var $validate = array( 'born' => array( 'rule' => 'date', 'message' => 'Enter a valid date in YY-MM-DD format.', 'allowEmpty' => true ) );
7. decimal
用来检查提交的数据是否是一个有效的十进制整数:
var $validate = array( 'price' => array( 'rule' => array('decimal', 2) ) );
8. email
用来检查输入是否是一个有效的 email 地址(非常常用):
var $validate = array('email' => array('rule' => 'email')); var $validate = array( 'email' => array( 'rule' => array('email', true), 'message' => 'Please supply a valid email address.' ) );
9. equalTo
将确保该值等于,和同类型的特定价值:
var $validate = array( 'food' => array( 'rule' => array('equalTo', 'cake'), 'message' => 'This value must be the string cake' ) );
10. extension
检查文件的扩展名是否为指定格式,一般用array来限定扩展名:
var $validate = array( 'image' => array( 'rule' => array('extension', array('gif', 'jpeg', 'png', 'jpg'), 'message' => 'Please supply a valid image.' ) );
11. ip
确保提交的是有效的IPv4地址:
var $validate = array( 'clientip' => array( 'rule' => 'ip', 'message' => 'Please supply a valid IP address.' ) );
12. isUnique
确保该字段是唯一的:
var $validate = array( 'name' => array( 'rule' => 'isUnique', 'message' => 'This name has already been taken.' ) );
13. minLength
确保数据符合最小长度要求:
var $validate = array( 'password' => array( 'rule' => array('minLength', '8'), 'message' => 'Password must be at least 8 characters long.' ) );
14. maxLength
确保数据符合最大长度要求:
var $validate = array( 'name' => array( 'rule' => array('maxLength', '15'), 'message' => 'Names must be no larger than 15 characters long.' ) );
15. money
确保该值是一个有效的货币:第二个参数定义符号位于(left/right):
var $validate = array( 'salary' => array( 'rule' => array('money', 'left'), 'message' => 'Please supply a valid monetary amount.' ) );
16. inList
这条规则将确保该值属于某一(通常是array)集合:
var $validate = array( 'function' => array( 'allowedChoice' => array( 'rule' => array('inList', array('Foo', 'Bar')), 'message' => 'Enter either Foo or Bar.' ) ) );
17. numeric
是否是一个有效的号码(数字):
var $validate = array( 'carNum' => array( 'rule' => 'numeric', 'message' => 'Please supply the number of cars.' ) );
18. notEmpty
确保字段不为空(常用):
var $validate = array( 'title' => array( 'rule' => 'notEmpty', 'message' => 'This field cannot be left blank' ) );
19. phone
验证一个合法的电话号码,缺省为'all'.
如果你想验证某个国家的电话号码,你可以提供一个表达的第二个参数,用以支持其它格式:
var $validate = array( 'phone' => array( 'rule' => array('phone', null, 'us') ) );
20. postal
用来验证邮政编码,缺省为'null'.
可以是美国(us),加拿大(ca) ,英国(uk),德国( de )和比利时(be).
对于其他邮递区号格式,您可以提供一个正则表达式作为第二个参数;
var $validate = array( 'zipcode' => array( 'rule' => array('postal', null, 'us') ) );
21. range
保证值是在特定的范围内:
var $validate = array( 'number' => array( 'rule' => array('range', 0, 10), 'message' => 'Please enter a number between 0 and 10' ) );
22. ssn
ssn(美国)有效的社会安全号码,可以是美国(us),丹麦(dk),荷兰(nl) .
23. url
检查有效的URL格式。
支持HTTP(s)的FTP(s),file,news和的Gopher协议:
var $validate = array( 'urls' => array( 'rule' => 'url' ) );
二、Custom Validation Rules (自定义验证)
1. Custom Regular Expression Validation (自定义正则表达式验证)
var $validate = array( 'username' => array( 'rule' => array('custom', '/[a-z0-9]{4,}$/i'), 'message' => 'Only letters and integers, min 4 characters' ) );
以上,检查的username只包含字母和整数,并且不少于四个字符.
2. Custom Validataion Methods (自定义方法验证)
<?php class User extends AppModel { var $name = 'User'; var $validate = array( 'code' => array( 'rule' => array('limitDuplicates', 25), 'message' => 'This code has been used too many times.' ) ); function limitDuplicates($data, $limit){ $existing_count = $this->find( 'count', array('conditions' => $data, 'recursive' => -1) ); return $existing_count < $limit; } } ?>
这个自定义方法避免了code在数据库中出现的次数不超过一定的次数(25).
以上就是CakePHP中关于server端数据验证的方法汇总,如有缈误,欢迎指出,欢迎留言评论!
发表评论
-
CakePHP开发之调用控制器方法requestAction
2010-09-17 14:41 2250有时候,为了调用上的方便,我们需要使用requestActio ... -
CakePHP开发之controller设置之国际化
2010-09-06 11:08 1423CakePHP中对国际化(internationalizati ... -
CakePHP开发之helpers
2010-09-02 12:08 1341helper顾名思义就是帮助类,主要运用于视图view层. ... -
CakePHP开发之视图缓存
2010-08-31 14:50 2330当对指定URL发起请求时,CakePHP首先检查该URL是否已 ... -
CakePHP开发之controller设置之paginate
2010-08-27 10:51 5985CakePHP中paginate是一个处理分页数据的函数. 配 ... -
CakePHP开发之控制器-Controller
2010-08-24 17:54 4407在CakePHP里,一个controller用于管理应用程序某 ... -
CakePHP之Component设置
2010-08-19 12:35 2406CakePHP的组件Component可以看作是Control ... -
CakePHP之Model函数定义
2010-08-14 14:03 1118在CakePHP中,MVC的架构是清晰的,而在实际做项目中,我 ... -
CakePHP之Model关联对象
2010-08-13 14:50 4458CakePHP 提供关联数据表间的映射,共有4种类型的关联: ... -
CakePHP之启动加载
2010-08-12 10:36 1493首先,在根目录下,app/index.php requi ... -
cakephp开发之bake
2010-08-06 11:07 2950cakephp的bake为开发者提供了很多方便之出: 以win ... -
cakephp开发之脚手架(scaffold)
2010-08-03 17:53 1093脚手架似乎是个偷懒的捷径,但是,在你急切的想要知道一个appl ... -
cakephp开发前期准备三
2010-08-02 17:02 929关于系统的配置,前期的准备都差不多了,但还要注意几点: 1. ... -
cakephp开发前期准备二
2010-07-30 17:23 1404一. 在app/config目录下core.php文件中,定义 ... -
cakephp开发前期准备一
2010-07-29 15:10 937首先:在app目录下定义全局文件. 一般需要定义的app文件主 ... -
cakephp配置部署
2010-07-28 18:19 2297CakePHP是什么: CakePHP 是一个基于PHP,免 ...
相关推荐
使用CakePHP框架如何创建验证器的文档。验证器可以通过在控制器中加入以下代码被创建,一旦创建了验证器,我们就可以使用验证器实例验证数据。
打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...
打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...
cakephp-jwt-auth, 使用JSON网络令牌进行身份验证的CakePHP插件 CakePHP认证插件 包含AuthComponent类认证的插件,用于使用 JSON网络令牌进行身份验证。 你可以在这里详细阅读关于JSON网络令牌规范的详细说明。要求...
There are two main ways to get a fresh copy of CakePHP. You can either download an archive copy (zip/tar.gz/tar.bz2) from the main website, or check out the code from the git repository. To download ...
cakephp 框架 cakephp 框架 cakephp 框架 cakephp 框架 cakephp 框架
join ‘other model’ 来指定具体的关联模型进行自定义查询 如果不需要关联数据的情况就不使用join方法 这样就避免了上面问题的产生 2:cakephp中虽然对模型的操作方法中并没有提供像上面提到的连贯方法 但是cake...
CakePHP 3.4 开发手册文档 CakePHP Cookbook Documentation Release 3.4
cakephp分页,cakephp框架的分页的方法的文档,是cakephp框架的内容。
Lead you from a basic setup of CakePHP to building a couple applications that will highlight CakePHPs functionality and capabilities without delving too deeply into the PHP language, but rather ...
cakephp中acl详解
cakephp 框架书籍 英文版
cakephp-1.2 manual 英文版,离线版。
cakephp-1.3.21.zip
cakephp-2.2.4-0 稳定版框架
CakePHP有多个特点,这些特点让CakePHP成为了快速开发框架中的佼佼者之一。 1.活跃友好的社区 2.灵活的许可协议(Licensing) 3.兼容PHP4和PHP5 4.数据库交互和简单查询的集成 5.应用程序Scaffolding 6....
cakephp框架源码cakephp框架源码cakephp框架源码cakephp框架源码cakephp框架源码cakephp框架源码cakephp框架源码cakephp框架源码cakephp框架源码
CakePHP 一个开源PHP web 开发框架,PHPMVC结构框架,易与开发,是PHP技术人员的开发好的选择之一!
在cakephp.org站点的Sites in the wild页面可以看到当前使用CakePHP框架的网站列表。 CakePHP 是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该...
cakephp 中文手册cakephp 中文手册cakephp 中文手册cakephp 中文手册