Home  >  Article  >  php教程  >  YII 表单验证规则大全,yii表单规则大全

YII 表单验证规则大全,yii表单规则大全

WBOY
WBOYOriginal
2016-06-13 08:51:041349browse

YII 表单验证规则大全,yii表单规则大全

<?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)));
			}
		}
	}

 

Statement:
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