我正在使用 Yii 2.0,我无法弄清楚如何在下拉列表中验证所选选项的值,我需要检查,如果它大于ZERO 。
到目前为止我有什么
规则数组中的
['year', 'required'],
['day', 'required'],
['month', 'checkDefaultValue'],...
自定义验证方法是
public function checkDefaultValue() {
if ($this->month > 0) {
$this->addError('month', 'Month error message...');
}
}
这段代码不起作用,有更好的方法吗?
答案 0 :(得分:2)
你可以做这样的事情
['month', 'in','range' => ['Jan','Feb']],
指定值的范围。
答案 1 :(得分:0)
您的代码无效,因为如果月份大于零,则会添加错误,这与您想要的相反。
这可行:
public function checkDefaultValue() {
if ($this->month <= 0) {
$this->addError('month', 'Month error message...');
}
}
或使用默认数字验证器来执行此操作甚至更多:
[
['month'],
'number',
'integerOnly' => true,
'min' => 1,
'tooSmall'=>'the selected item is too small for month!!!',
'max' => 12,
'tooBig'=>'the selected item is too big for month!!!',
]
答案 2 :(得分:0)
您可以使用range
验证工具,如果您仍想要custom validation
this,则可以为您提供帮助。