https://www.yiichina.com/doc/api/2.0/yii-base-model#rules()-detail
entryForm页面 rules()方法
Returns the validation rules for attributes
返回属性的验证规则。
Each rule is an array with the following structure
每个规则都是具有以下结构的数组
[
['attribute1', 'attribute2'], 属性名称
'validator type', 验证器类型
'on' => ['scenario1', 'scenario2'], 应用验证规则的函数数组
//...other parameters... 其他参数
]
属性列表:必选项,指定要验证的属性数组,对于单个属性,可以传递一个字符串;
验证程序类型:必需,指定要使用的验证程序。它可以是内置的验证程序名称、模型类的方法名称、匿名函数或验证程序类名。
on:可选,指定可在其中应用验证规则的函数数组。如果未设置此选项,则规则将应用于所有函数。
可以指定其他名称-值对来初始化相应的验证器属性。有关可能的属性,请参考单个验证器类API。
验证程序可以是扩展yii\validators\validator的类的对象,也可以是具有以下签名的模型类方法(称为内联验证程序):
// $params refers to validation parameters given in the rule
function validatorName($attribute, $params)
在上面,$attribute指的是当前正在验证的属性,而$params包含一个验证器配置选项数组,例如字符串验证器的max。当前正在验证的属性的值可以访问为$this->$attribute。注意$before属性;这是以变量$attribute的值作为要访问的属性的名称。
yii还提供了一组内置验证器。每个别名都可以在指定验证规则时使用。
以下是一些例子:
[
// built-in "required" validator [['username', 'password'], 'required'],
// built-in "string" validator customized with "min" and "max" properties ['username', 'string', 'min' => 3, 'max' => 12],
// built-in "compare" validator that is used in "register" scenario only ['password', 'compare', 'compareAttribute' => 'password2', 'on' => 'register'],
// an inline validator defined via the "authenticate()" method in the model class ['password', 'authenticate', 'on' => 'login'],
// a validator of class "DateRangeValidator" ['dateRange', 'DateRangeValidator'],
];
注意,为了继承在父类中定义的规则,子类需要使用array_merge()等函数将父规则与子规则合并。
网友评论