PHP Yii框架之表单验证规则大全

Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程,本文给大家介绍php yii框架之表单验证规则大全,感兴趣的朋友一起学习吧

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

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

你可能感兴趣的:(Yii2)