CakePHP 模型中的数据校验规则

之前没学过任何框架,搞这个cakephp把我难住了,几乎花了一天时间,才有点头绪,简直比新学一门语言还要难。cakephp虽然有官方中文文档,但有些部分好像是机器翻译的,也许是我理解能力有点差,反正看不太懂。
这个校验规则官方文档也有,但那网站偶尔抽风,另外也让自己更熟悉一点,所以抄一下。官方文档地址:http://book.cakephp.org/1.3/cn/view/1152/%E6%A0%B8%E5%BF%83%E6%A0%A1%E9%AA%8C%E8%A7%84%E5%88%99
alphaNumeric :数据字段只能包括字母和数字。
between :输入数据的长度必须介于指定的数字范围以内。必须提供最小值与最大值。使用 blank :该规则确定字段为空或者值仅为空白字符。空白字符包括:空格、tab、回车符,以及换行符。
boolean:字符是布尔型,如true,false,0,1,’0′,’1′
cc:该规则用来校验数据是否为一个有效的信用卡号码。有三个参数:‘type’, ‘deep’ and ‘regex’.
comparison:Comparison用来比较数字值。它支持“is greater”, “is less”, “greater or equal”, “less or equal”, “is less”, “equal to”, 和 “not equal”。
date:本规则确保数据以有效的日期格式提交。允许传入一个单独的参数(可以为数组)来校验提供日期的格式。
decimal:本规则确保数据为一个有效的小数。可以传入参数指定小数点后的数字位数。如果不传入参数,数据会以科学浮点数进行校验,如果小数点后无数字,则会校验失败。
email:检查数据是否为一个有效的email地址。第二个参数传入布尔值true,规则也会试图校验给定地址的主机地址是否有效。
equalTo:本规则确保数据与给定的值相等,且类型亦相同。
extension:本规则检查文件扩展名是否有效,如.jpg或.png等。允许以数组格式传入多个扩展名。
ip:本规则确保提交的是一个有效的IPv4地址
isUnique:字段值必须唯一,不能用于其它行。
minLength:本规则规定数据的最小长度。
maxLength:本规则规定数据的最大长度。
money:本规则确保值为一个有效的货币值。第二个参数定义货币符号在哪边(左边/右边)
Multiple:用来校验多项选择输入。支持”in”, “max”和”min”等参数
inList:本规则确保值在给定的集合中。需要提供一个数组的值。如果值在给定数组中,则该字段有效。
numeric:检查传入的数据是一个有效的数字。
notEmpty:确保字段非空的基本规则。
phone:Phone检验美国的电话号码。如果要校验其它国家的电话号码,需要提供相应的正则表达式作为第二个参数。
postal:Postal用来校验美国(us), 加拿大(ca), 英国(uk), 意大利(it), 德国(de)和比利时(be)的邮政编码格式。对其它国家的邮政编码格式,需要定义相应的正则表达式作为第二个参数。
range:本规则确保值在指定的范围之内。如果未提供范围,规则会检查值是否符合当前平台定义。
ssn:Ssn校验美国(us), 丹麦(dk), 以及荷兰(nl)的社会保险号码。对于其它国家的社会保险号格式,需要提供相应的正则表达式。
url:本规则校验有效的URL格式。支持http(s), ftp(s), file, news以及gopher协议。
使用正则表达式校验规则:


	var $validate = array (
			'login' => array (
					'rule' => array (
							'custom',
							'/^[a-z0-9]{3,}$/i' 
					),
					'message' => 'Only letters and integers, min 3 characters' 
			) 
	);

单个字段,匹配多个规则:


	var $validate = array (
			'login' => array (
					'alphanumeric' => array (
							'rule' => 'alphaNumeric',
							'message' => 'Only alphabets and numbers allowed',
							'last' => true 
					),
					'minlength' => array (
							'rule' => array (
									'minLength',
									'8' 
							),
							'message' => 'Minimum length of 8 characters' 
					) 
			) 
	);

© 2012, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记