我使用yii2,我有三个字段num1,num2,num3。我想添加验证,num2输入应该大于num1输入,所以我使用比较规则。代码如下
return [
[['num1', 'num2', 'num3'], 'required'],
[['num1', 'num2', 'num3'], 'integer', 'min' => self::MIN_SIZE, 'max' => self::MAX_SIZE],
['num2', 'compare', 'compareAttribute' => 'num1', 'operator' => '>'],
];
}
问题:如果我在输入中添加8,9,10,则可以工作,但如果我在输入中添加8,10,11,则会失败。我已尝试将输入类型添加为数字。
1条答案
按热度按时间sdnqo3pr1#
默认情况下,
yii\validators\CompareValidator
中的操作数作为字符串进行比较。这就是'10'
被认为小于'8'
的原因。您需要设置
CompareValidator::$type
属性以将操作数作为数字进行比较。规则应如下所示: