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框架之表单验证规则大全的全部内容,希望大家喜欢 。 |