Yii2.0 模型数据验证规则

本文介绍了Yii2.0框架中数据模型的验证规则,包括必填验证、邮箱格式、网址格式、正则匹配、验证码、安全属性、相等验证、字符串长度、唯一性、整数和数字范围、双精度浮点数、范围验证、过滤、存在性及文件上传等。同时展示了如何自定义验证函数并实现数据的添加与验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在数据模型中,根据需要加入以下代码,即可:

public function rules(){

    return [

        ['字段名','required','message'=>'提示信息','on'=>'场景名'],         //必填验证

        ['字段名','email','message'=>'提示信息','on'=>'场景名'],             //邮箱格式验证

        ['字段名','url','message'=>'提示信息','on'=>'场景名'],                 //网址格式验证

        ['字段名','match','pattern'=>'正则表达式'],                                   //网址格式验证

        ['字段名','captcha'],                                                                       //验证码验证

        ['字段名','safe'],                                                                              //安全不许验证

        ['repassword','compare','compareAttribue'=>'password'],         //跟某个属性相等

        ['字段名','string','length'=>[6,18]],                   //字符串长度验证,必须在6至18长度以内的

        ['字段名','unique'],                                            //值在本字段中的唯一性验证

        ['字段名','integer','max'=>'上限','min'=>'下线'],//整数验证

        ['字段名','number','max'=>'上限','min'=>'下线'],//数字验证

        ['字段名','double'],                                              //双精度浮点数验证

         ['字段名','in','range'=>[1,2,3]],                           //范围验证,必须在1,2,3以内的

         ['字段名','double'],                                            //双精度浮点数验证

         ['字段名','filter','filter'=>'trim'],                          //过滤,删除字段两边的空格

         ['字段名','exist','targetClass'=>'模型名'],             //字段名必须在模型名中存在

      ['字段名','file','extension'=>'jpg,png','maxSize'=>1024*1024*1024],  //允许上传以jpg,png为后缀,文件最大1024*1024*1024  Byte的文件

         ['字段名','myselfFun'],                                            //自定义函数验证

    ]

}

public function myselfFun($data){

        if(!$this->hasErrors){     

             if(self::find()->where(['username' =>$data])->one()){

                    return true;

            }  

        }else{

            $this->addError('账户不存在');

            return  false;

        }

}


//验证数据,并添加到数据库

public function add($data){

    //给模型载入数据,并进行验证

    if($this->load($data) && $this->validate()){

            $this->save(false);//save方法传入false,表示不再验证数据,避免重复验证

            return true;

    }else{

            return false;

    }

}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值