Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。
废话不多说了,直接给大家贴代码了。
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输入有误.'
),
);
}
}
|
完整示例:
public
$password2
;
//非数据库的字段,但是在view中需要用到
public
$verify
;
//手机验证码
public
$fjg
;
//忘记号码
/**
* 映射数据库表名
* @return string the associated database table name
*/
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框架之表单验证规则大全的全部内容,希望大家喜欢。