Home > Backend Development > PHP Tutorial > Complete list of form validation rules for PHP Yii framework

Complete list of form validation rules for PHP Yii framework

高洛峰
Release: 2023-03-04 18:02:02
Original
1352 people have browsed it

Yii is a component-based, high-performance PHP framework for developing large-scale web applications. Yii is written in strict OOP and has complete library references and comprehensive tutorials.

No more nonsense, I will just post the code for you.

<?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(&#39;contact&#39;,&#39;required&#39;,&#39;on&#39;=>&#39;edit&#39;,&#39;message&#39;=>&#39;联系人必须填写.&#39;),
      array(&#39;contact&#39;,&#39;length&#39;,&#39;on&#39;=>&#39;edit&#39;,&#39;min&#39;=>2,&#39;max&#39;=>10,&#39;tooShort&#39;=>&#39;联系人长度请控制在2-10个字符.&#39;,&#39;tooLong&#39;=>&#39;联系人长度请控制在2-10个字符.&#39;),
      array(&#39;tel&#39;, &#39;match&#39;,&#39;pattern&#39; => &#39;/^(\d{3}-|\d{4}-)(\d{8}|\d{7})?$/&#39;,&#39;message&#39; => &#39;请输入正确的电话号码.&#39;),
      array(&#39;fax&#39;, &#39;match&#39;,&#39;pattern&#39; => &#39;/^(\d{3}-|\d{4}-)(\d{8}|\d{7})?$/&#39;,&#39;message&#39; => &#39;请输入正确的传真号码.&#39;),
      array(&#39;mobile&#39;, &#39;match&#39;,&#39;pattern&#39; => &#39;/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/&#39;,&#39;message&#39; => &#39;请输入正确的手机号码.&#39;),
      array(&#39;email&#39;,&#39;email&#39;,&#39;on&#39;=>&#39;edit&#39;,&#39;message&#39;=>&#39;邮箱输入有误.&#39;),
      array(&#39;zipcode&#39;,&#39;required&#39;,&#39;on&#39;=>&#39;edit&#39;,&#39;message&#39;=>&#39;邮编必须填写.&#39;),
      array(&#39;zipcode&#39;,&#39;numerical&#39;,&#39;on&#39;=>&#39;edit&#39;,&#39;message&#39;=>&#39;邮编是6位数字.&#39;),
      array(&#39;zipcode&#39;,&#39;length&#39;,&#39;on&#39;=>&#39;edit&#39;,&#39;min&#39;=>6,&#39;max&#39;=>6,&#39;tooShort&#39;=>&#39;邮编长度为6位数.&#39;,&#39;tooLong&#39;=>&#39;邮编长度为6位数.&#39;),
      array(&#39;website&#39;,&#39;url&#39;,&#39;on&#39;=>&#39;edit&#39;,&#39;message&#39;=>&#39;网址输入有误.&#39;),
      array(&#39;qq&#39;, &#39;match&#39;,&#39;pattern&#39; => &#39;/^[1-9]{1}[0-9]{4,11}$/&#39;,&#39;message&#39; => &#39;请输入正确的QQ号码.&#39;),
      array(&#39;msn&#39;,&#39;email&#39;,&#39;on&#39;=>&#39;edit&#39;,&#39;message&#39;=>&#39;MSN输入有误.&#39;),
    );
  }
}
Copy after login

Complete example:

public $password2;//非数据库的字段,但是在view中需要用到
  public $verify; //手机验证码
  public $fjg; //忘记号码
  /**
   * 映射数据库表名
   * @return string the associated database table name<br><br>     * www.shouce.ren
   */
  public function tableName()
  {
    return &#39;adm_user&#39;;
  }
  /**
   * 验证规则
   * @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(&#39;mobile_phone,name,status&#39;, &#39;required&#39;),
      array(&#39;mobile_phone&#39;, &#39;unique&#39;),//&#39;message&#39; => &#39;该手机号已经存在!&#39;
      array(&#39;mobile_phone&#39;, &#39;match&#39;,&#39;pattern&#39; => &#39;/^(13|15|18)[0-9]{9}$/&#39;,&#39;message&#39; => &#39;请输入正确的经办人手机号码.&#39;),
      //array(&#39;certificate_id&#39;, &#39;match&#39;,&#39;pattern&#39; => &#39;/(.jpg|.gif|.png|\d)$/&#39;,&#39;message&#39; => &#39;请重新选择证书图像并且后缀只能是jpg、gif、png格式.&#39;),
      array(&#39;phone&#39;, &#39;match&#39;,&#39;pattern&#39; => &#39;/^(\d{3}-|\d{4}-)?(\d{8}|\d{7})?$/&#39;,&#39;message&#39; => &#39;请输入正确的座机号码.&#39;),
      array(&#39;fax&#39;, &#39;match&#39;,&#39;pattern&#39; => &#39;/^(\d{3}-|\d{4}-)(\d{8}|\d{7})?$/&#39;,&#39;message&#39; => &#39;请输入正确的传真号码.&#39;),
      //array(&#39;email_address&#39;, &#39;match&#39;,&#39;pattern&#39; => &#39;/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/&#39;,&#39;message&#39; => &#39;请输入正确的邮箱.&#39;),
      array(&#39;email_address&#39;,&#39;email&#39;,&#39;message&#39;=>&#39;请输入正确的邮箱.&#39;),
      //验证密码和确认密码
      array("password2","compare","compareAttribute"=>"password","message"=>"两次密码不一致",&#39;on&#39;=>&#39;register&#39;),
      array("password2","compare","compareAttribute"=>"password","message"=>"两次密码不一致",&#39;on&#39;=>&#39;regonter&#39;),
      array(&#39;qq&#39;, &#39;match&#39;,&#39;pattern&#39; => &#39;/^[1-9]{1}[0-9]{4,11}$/&#39;,&#39;message&#39; => &#39;请输入正确的QQ号码.&#39;),
      array(&#39;type,certificate_id,company_type, nationality,yyzz_id, status,level,create_by_id, create_time,update_time&#39;, &#39;numerical&#39;, &#39;integerOnly&#39;=>true),
      array(&#39;verify&#39;, &#39;numerical&#39;, &#39;message&#39; => &#39;验证码不正确&#39;,&#39;integerOnly&#39;=>true),
      array(&#39;name,user_type,tuijianren&#39;, &#39;length&#39;, &#39;max&#39;=>20),
      array(&#39;password&#39;, &#39;length&#39;, &#39;max&#39;=>100),
      array(&#39;email_address,business&#39;, &#39;length&#39;, &#39;max&#39;=>50),
      array(&#39;communication_address,money, yhzh,yhmc,industry, company, register_address,yhdh,shangbiao,zhuanli,gongshang&#39;, &#39;length&#39;, &#39;max&#39;=>255),
      array(&#39;role_id&#39;,&#39;default&#39;, &#39;setOnEmpty&#39;=>true, &#39;value&#39;=>10),
      array(&#39;shangbiao&#39;,&#39;default&#39;, &#39;setOnEmpty&#39;=>true, &#39;value&#39;=>&#39;0,0&#39;),
      array(&#39;zhuanli&#39;,&#39;default&#39;, &#39;setOnEmpty&#39;=>true, &#39;value&#39;=>&#39;0,0&#39;),
      array(&#39;gongshang&#39;,&#39;default&#39;, &#39;setOnEmpty&#39;=>true, &#39;value&#39;=>&#39;0,0&#39;),
      array(&#39;password&#39;,&#39;default&#39;, &#39;setOnEmpty&#39;=>true, &#39;value&#39;=>&#39;123456&#39;),
      /*验证码*/
      array(&#39;verify&#39;,&#39;checkVerify&#39;, &#39;on&#39;=>&#39;register&#39;),
      array(&#39;email_address&#39;,&#39;checkemail&#39;, &#39;on&#39;=>&#39;regonter&#39;),
//     array(&#39;certificate_id&#39;, &#39;file&#39;,&#39;allowEmpty&#39;=>true,
//         &#39;types&#39;=>&#39;jpg, gif, png, doc, txt&#39;,
//         &#39;maxSize&#39;=>1024 * 1024 * 10, // 10MB
//         &#39;tooLarge&#39;=>&#39;文件大小不能超过10M!&#39;,
//         &#39;message&#39;=>&#39;请先上传证书图像.&#39;
//     ),
      // The following rule is used by search().
      // @todo Please remove those attributes that should not be searched.
      array(&#39;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&#39;, &#39;safe&#39;, &#39;on&#39;=>&#39;search&#39;),
    );
  } 
  /*
   * 手机验证码校验 
   */
  public function checkVerify($attribute,$params)
  {   
    $model=new Mess();
    $d_title = $model->find(array(&#39;condition&#39;=>&#39;suij=:suij and tel=:tel and type>:type and time>:time&#39;,&#39;params&#39;=>array(&#39;:suij&#39;=>$this->verify,&#39;:tel&#39;=>$this->mobile_phone,&#39;:type&#39;=>0,&#39;:time&#39;=>(time()-3600)),&#39;select&#39;=>array(&#39;id&#39;)));
    //$d_title = $model->findByAttributes(array(&#39;suij&#39;=>$this->verify,&#39;tel&#39;=>$this->mobile_phone),array(&#39;select&#39;=>array(&#39;id&#39;)));
    if($d_title[&#39;id&#39;]<1)
    {
      $this->addError(&#39;verify&#39;, "验证码不正确。");
    }
    else
    {
      if($this->password == $this->password2)
      {
        $model->updateAll(array(&#39;type&#39;=>0),array(&#39;condition&#39;=>&#39;suij=:sj&#39;,&#39;params&#39;=>array(&#39;:sj&#39;=>$this->verify)));
      }
    }
  }
Copy after login

The above code is all about the form validation rules of the PHP Yii framework. I hope you like it.

For more articles related to the form validation rules of the PHP Yii framework, please pay attention to the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template