如何在yii2中为字段添加自定义验证。 文本框值不应超过当前模型的表字段值。 有没有办法从控制器添加新规则?
例如:$model->f1
应小于或等于$model->f2
。
我使用dynamicmodel获得了一些积分。但我只有一个字段要检查。
它也应该在客户端工作。
无论如何是从控制器还是在activeform中添加自定义规则?
感谢。
答案 0 :(得分:1)
您可以将CompareValidator compareValue属性用作: -
public function rules()
{
return [
// Your Validation rules as
[
'f2' ,
'compare' ,
'compareValue' => ArrayHelper::getValue($this , ['oldAttributes' ,'f1']),
'operator' => '<=',
]
];
}
保存在数据库中的模型f1值必须大于用户填写的f2
答案 1 :(得分:1)
将其添加到模型中的验证规则中,以确保f1值为&lt; = f2。
[
// other validation rules
['f1', 'compare', 'compareAttribute' => 'f2', 'operator' => '<='],
]