Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。
废话不多说了,直接给大家贴代码了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
<?php
class ContactForm extends CFormModel
{
public $_id ;
public $contact ; //联系人
public $tel ; //电话
public $fax ; //传真
public $zipcode ; //邮编
public $addr ; //地址
public $mobile ; //手机
public $email ; //邮箱
public $website ; //网址
public $qq ; //QQ
public $msn ; //MSN
public function rules()
{
return array (
array ( 'contact' , 'required' , 'on' => 'edit' , 'message' => '联系人必须填写.' ),
array ( 'contact' , 'length' , 'on' => 'edit' , 'min' =>2, 'max' =>10, 'tooShort' => '联系人长度请控制在2-10个字符.' , 'tooLong' => '联系人长度请控制在2-10个字符.' ),
array ( 'tel' , 'match' , 'pattern' => '/^(\d{3}-|\d{4}-)(\d{8}|\d{7})?$/' , 'message' => '请输入正确的电话号码.' ),
array ( 'fax' , 'match' , 'pattern' => '/^(\d{3}-|\d{4}-)(\d{8}|\d{7})?$/' , 'message' => '请输入正确的传真号码.' ),
array ( 'mobile' , 'match' , 'pattern' => '/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/' , 'message' => '请输入正确的手机号码.' ),
array ( 'email' , 'email' , 'on' => 'edit' , 'message' => '邮箱输入有误.' ),
array ( 'zipcode' , 'required' , 'on' => 'edit' , 'message' => '邮编必须填写.' ),
array ( 'zipcode' , 'numerical' , 'on' => 'edit' , 'message' => '邮编是6位数字.' ),
array ( 'zipcode' , 'length' , 'on' => 'edit' , 'min' =>6, 'max' =>6, 'tooShort' => '邮编长度为6位数.' , 'tooLong' => '邮编长度为6位数.' ),
array ( 'website' , 'url' , 'on' => 'edit' , 'message' => '网址输入有误.' ),
array ( 'qq' , 'match' , 'pattern' => '/^[1-9]{1}[0-9]{4,11}$/' , 'message' => '请输入正确的QQ号码.' ),
array ( 'msn' , 'email' , 'on' => 'edit' , 'message' => 'MSN输入有误.' ),
);
}
}
|
完整示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
public $password2 ; //非数据库的字段,但是在view中需要用到
public $verify ; //手机验证码
public $fjg ; //忘记号码
/**
* 映射数据库表名
* @return string the associated database table name<br><br> * www.shouce.ren
*/
public function tableName()
{
return 'adm_user' ;
}
/**
* 验证规则
* @return array validation rules for model attributes.
*/
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array (
//array('mobile_phone,name,status', 'required'),
array ( 'mobile_phone' , 'unique' ), //'message' => '该手机号已经存在!'
array ( 'mobile_phone' , 'match' , 'pattern' => '/^(13|15|18)[0-9]{9}$/' , 'message' => '请输入正确的经办人手机号码.' ),
//array('certificate_id', 'match','pattern' => '/(.jpg|.gif|.png|\d)$/','message' => '请重新选择证书图像并且后缀只能是jpg、gif、png格式.'),
array ( 'phone' , 'match' , 'pattern' => '/^(\d{3}-|\d{4}-)?(\d{8}|\d{7})?$/' , 'message' => '请输入正确的座机号码.' ),
array ( 'fax' , 'match' , 'pattern' => '/^(\d{3}-|\d{4}-)(\d{8}|\d{7})?$/' , 'message' => '请输入正确的传真号码.' ),
//array('email_address', 'match','pattern' => '/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/','message' => '请输入正确的邮箱.'),
array ( 'email_address' , 'email' , 'message' => '请输入正确的邮箱.' ),
//验证密码和确认密码
array ( "password2" , "compare" , "compareAttribute" => "password" , "message" => "两次密码不一致" , 'on' => 'register' ),
array ( "password2" , "compare" , "compareAttribute" => "password" , "message" => "两次密码不一致" , 'on' => 'regonter' ),
array ( 'qq' , 'match' , 'pattern' => '/^[1-9]{1}[0-9]{4,11}$/' , 'message' => '请输入正确的QQ号码.' ),
array ( 'type,certificate_id,company_type, nationality,yyzz_id, status,level,create_by_id, create_time,update_time' , 'numerical' , 'integerOnly' =>true),
array ( 'verify' , 'numerical' , 'message' => '验证码不正确' , 'integerOnly' =>true),
array ( 'name,user_type,tuijianren' , 'length' , 'max' =>20),
array ( 'password' , 'length' , 'max' =>100),
array ( 'email_address,business' , 'length' , 'max' =>50),
array ( 'communication_address,money, yhzh,yhmc,industry, company, register_address,yhdh,shangbiao,zhuanli,gongshang' , 'length' , 'max' =>255),
array ( 'role_id' , 'default' , 'setOnEmpty' =>true, 'value' =>10),
array ( 'shangbiao' , 'default' , 'setOnEmpty' =>true, 'value' => '0,0' ),
array ( 'zhuanli' , 'default' , 'setOnEmpty' =>true, 'value' => '0,0' ),
array ( 'gongshang' , 'default' , 'setOnEmpty' =>true, 'value' => '0,0' ),
array ( 'password' , 'default' , 'setOnEmpty' =>true, 'value' => '123456' ),
/*验证码*/
array ( 'verify' , 'checkVerify' , 'on' => 'register' ),
array ( 'email_address' , 'checkemail' , 'on' => 'regonter' ),
// array('certificate_id', 'file','allowEmpty'=>true,
// 'types'=>'jpg, gif, png, doc, txt',
// 'maxSize'=>1024 * 1024 * 10, // 10MB
// 'tooLarge'=>'文件大小不能超过10M!',
// 'message'=>'请先上传证书图像.'
// ),
// The following rule is used by search().
// @todo Please remove those attributes that should not be searched.
array ( 'id,role_id,name, password,user_type, email_address,tuijianren,shangbiao,company_type,zhuanli,gongshang,money,yhzh,yhmc,yyzz_id,yhdh,type,level, phone, qq, mobile_phone, fax, communication_address, nationality, industry, company, business, register_address, certificate, status, create_by_id, create_time, update_time' , 'safe' , 'on' => 'search' ),
);
}
/*
* 手机验证码校验
*/
public function checkVerify( $attribute , $params )
{
$model = new Mess();
$d_title = $model ->find( array ( 'condition' => 'suij=:suij and tel=:tel and type>:type and time>:time' , 'params' => array ( ':suij' => $this ->verify, ':tel' => $this ->mobile_phone, ':type' =>0, ':time' =>(time()-3600)), 'select' => array ( 'id' )));
//$d_title = $model->findByAttributes(array('suij'=>$this->verify,'tel'=>$this->mobile_phone),array('select'=>array('id')));
if ( $d_title [ 'id' ]<1)
{
$this ->addError( 'verify' , "验证码不正确。" );
}
else
{
if ( $this ->password == $this ->password2)
{
$model ->updateAll( array ( 'type' =>0), array ( 'condition' => 'suij=:sj' , 'params' => array ( ':sj' => $this ->verify)));
}
}
}
|
以上代码就是关于PHP Yii框架之表单验证规则大全的全部内容,希望大家喜欢。