在数据模型中,根据需要加入以下代码,即可:
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;
}
}