PHP Yii框架之表单验证规则大全 |
|
Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用 。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程 。 废话不多说了,直接给大家贴代码了 。
<?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输入有误.),
);
}
}
完整示例:
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框架之表单验证规则大全的全部内容,希望大家喜欢 。 |