在Yii2中使用独立验证程序时传递多个属性

时间:2015-09-27 10:05:41

标签: php yii yii2

我想在Yii2中使用standalone validator,但我不确定在覆盖validateAttributes()时如何传递多个属性。

以下是我的验证器示例:

class RegistrationValidator extends Validator {

    public function validateAttributes($model, $attributes = null) {

    }

}

以下是我在模型中的rules()方法中调用它的方法:

[['username','email'], RegistrationValidator::className()],

然而,当在var_dump变量上的验证器中执行attributes时,我似乎已经所有属性名称,而不仅仅是用户名&电子邮件。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

你有重写错误的方法。您应该覆盖validateAttribute($model, $attribute)而不是validateAttributes($model, $attributes = null)。至少这是做到这一点的常用方法。

您可以使用参数访问模型的属性(正如您在validateAttributes()中找到的那样)。但是,您必须决定属性应该获取哪些错误消息。您可以使用$ attribute参数进行区分。但是你不必为这两个属性添加错误,尽管这可能是合理的。