Model 类的rules()方法返回的每个规则必须是以下格式。

 public function rules()
    {
        return [
            [['attributesl', 'attributes2'],//属性列表数组
                'validator',  //预定义验证器类的别名
                'on' => ' actionID',////应用场景列表(可选)
                'message' => 'string',//附加选项,如自定义的错误提是示信息
            ]
        ];
    }

“validator” 预定义验证表

验证器类别名功能描述
BooleanValidatorboolean功能描述确保验证项值是true 或false
CaptchaValidatorcaptcha验证码验证
CompareValidatorcompare确定值验证
EmailValidatoremail有效的Email地址格式验证
DefaultValueValidatordefault设定默认值
ExistValidatorexist确保验证项可以在指定数据库表的列中找到
FileValidatorfile确保验证项含有一个上传文件的名字
FilterValidatorfilter通过一个过滤器改变此验证项
CRangeValidatorin确保验证项的值在预先指定的范围之内
StringValidatorlength确保验证项的长度在指定的范围之内
RegularExpression Validatormatch正则表达式匹配验证
NumberValidatornumber有效的数字格式验证
RequiredValidatorrequired确保验证项不为空
Unique Validatorunique确保验证项在数据库表列中是唯一的
UrlValidatorurl有效的URL格式验证
SafeValidatorsafe认为该验证项是安全的,以便于块赋值

比如:file 验证图片 图片可以为空、类型只能是jpg、png或者gif,最大10M等

public function rules()
    {
        return [
            [
                'imgurl',
                'file',
                'allowEmpty' => true,
                'types' => 'jpg,gif,png',
                'maxSize' => 1024 * 1024 * 10,
                'toLarge' => '上传图片已超过10M',
            ],
            ['title','string', 'length' => [1, 10]],
        ];
    }

说明:除了使用Yii2框架提供的预定义验证器之外,安正规则中指定的“validator”还可以是模型类中的一个方法名,或者是一个自定义验证器的类型,这里就不再详细赘述。

Last modification:October 21, 2019
如果觉得我的文章对你有用,请随意赞赏