我想在Yii2
中使用standalone validator,但我不确定在覆盖validateAttributes()时如何传递多个属性。
以下是我的验证器示例:
class RegistrationValidator extends Validator {
public function validateAttributes($model, $attributes = null) {
}
}
以下是我在模型中的rules()
方法中调用它的方法:
[['username','email'], RegistrationValidator::className()],
然而,当在var_dump
变量上的验证器中执行attributes
时,我似乎已经所有属性名称,而不仅仅是用户名&电子邮件。
我在这里做错了什么?
答案 0 :(得分:0)
你有重写错误的方法。您应该覆盖validateAttribute($model, $attribute)而不是validateAttributes($model, $attributes = null)。至少这是做到这一点的常用方法。
您可以使用参数访问模型的属性(正如您在validateAttributes()
中找到的那样)。但是,您必须决定属性应该获取哪些错误消息。您可以使用$ attribute参数进行区分。但是你不必为这两个属性添加错误,尽管这可能是合理的。