filter: 用于定义滤镜的php回调函数,可以为全局函数名,匿名函数或其他。
skipOnArray:是否在输入为数组时跳过滤镜,默认为false。如果滤镜不能处理数组输入,应该设置为true。
2. 数据类型验证器
(1)boolean:布尔型。
['del', 'boolean', 'trueValue' => true, 'falseValue' => false, 'strict' => true]
trueValue:代表真的值,默认为1。
falseValue:代表假的值,默认为0。
strict:是否要求输入数据必须严格匹配trueValue或falseValue。默认为false。
(2)number:数字。
['salary', 'number']
(3)double:双精度浮点型,等效于number验证器。
['salary','double', 'max' => 99.99, 'min' => 0]
(4)integer:整数。
['age', 'integer']
注:number、double、integer验证器都可以设置min、max参数来限制数字的最大、最小值(含界点)。
(5)string:字符串。
['username', 'string', 'length' => [3, 30]]
length:指定输入字符串的长度限制。
min:字符串最小长度。
max:字符串最大长度。
encoding:字符串的编码方式,不设置则使用应用自身的charset属性值。默认为utf-8。
3. 数据格式验证器
(1)date:日期。
['time', 'date', 'format' => 'php:Y:m:d', 'timestampAttribute' => 'startTime']
format:时间格式,默认为“y-m-d”。
timestampAttribute:将时间转化为时间戳并赋值给某个属性。
(2)email:验证是否符合邮箱地址格式。
['emailAddr', 'email']
(3)ip:验证是否为有效IP地址。
['ip_address', 'ip']
(4)url:网址。
['website', 'url', 'defaultScheme' => 'http']
validSchemes:用于指定哪些URI方案会被视为有效,默认为['http', 'https']。
defaultScheme:若输入值没有对应的方案前缀,会使用的默认URI方案前缀。
(5)match:输入值是否满足某个正则表达式。
['username', 'match', 'pattern' => '/^[a-z]\w*$/i']
pattern:正则表达式。
not:是否对验证结果取反。
4. 数据值验证器
(1)required:必填。
[['username', 'password'], 'required']
requiredValue:所期望的值,若没设置则输入不能为空。
strict:检查输入值时是否检查类型。
(2)captcha:验证码。
['verifyCode', 'captcha', 'caseSensitive' => true, 'captchaAction' => 'site/captcha', 'skipOnEmpty' => false]
caseSensitive:是否大小写敏感,默认为false。
captchaAction:指向用于渲染验证码图片的captcha方法的路由,默认为'site/captcha'。
skipOnEmpty:输入为空时是否跳过验证,默认为false。
(3)compare:比较。
['password', 'compare', 'compareAttribute' => 'conpassword', 'operator' => '==']
compareAttribute:与指定属性值比较的属性名称。
compareValue:与某个常量值比较。
operator:比较操作符。
其中compareAttribute默认在验证属性后面加后缀“_repeat”作为另一个比较属性的名称,operator默认为“==”,即:['password', 'compare']规则表示验证password与password_repeat的值是否相等。
(4)each:验证数组。
['ids', 'each', 'rule' => ['integer']]
(验证数组ids中的每个元素是否都是int类型数据)
rule:定义验证每一个数组元素的验证规则。
allowMessageFromRule:是否使用rule中指定的多个验证规则报错信息,默认为true,若设置为false,则使用“message”参数值作为错误信息。
注:若输入值不是数组则会报错。
(5)exist:存在性。
['cid', 'exist', 'targetClass' => 'app\models\Category', 'targetAttribute' => 'id']