PHP Yii框架之表单验证规则大全
Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。
废话不多说了,直接给大家贴代码了。
<?php
classContactFormextendsCFormModel
{
public$_id;
public$contact;//联系人
public$tel;//电话
public$fax;//传真
public$zipcode;//邮编
public$addr;//地址
public$mobile;//手机
public$email;//邮箱
public$website;//网址
public$qq;//QQ
public$msn;//MSN
publicfunctionrules()
{
returnarray(
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;//忘记号码
/**
*映射数据库表名
*@returnstringtheassociateddatabasetablename<br><br>*www.shouce.ren
*/
publicfunctiontableName()
{
return'adm_user';
}
/**
*验证规则
*@returnarrayvalidationrulesformodelattributes.
*/
publicfunctionrules()
{
//NOTE:youshouldonlydefinerulesforthoseattributesthat
//willreceiveuserinputs.
returnarray(
//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'=>'请先上传证书图像.'
//),
//Thefollowingruleisusedbysearch().
//@todoPleaseremovethoseattributesthatshouldnotbesearched.
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'),
);
}
/*
*手机验证码校验
*/
publicfunctioncheckVerify($attribute,$params)
{
$model=newMess();
$d_title=$model->find(array('condition'=>'suij=:suijandtel=:telandtype>:typeandtime>: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)));
}
}
}
以上代码就是关于PHPYii框架之表单验证规则大全的全部内容,希望大家喜欢。