Yii2 - 表单验证规则:如何使用自定义验证功能或替代?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii2 - 表单验证规则:如何使用自定义验证功能或替代?相关的知识,希望对你有一定的参考价值。
我正在使用Yii 2.0,我无法弄清楚如何在下拉列表中验证所选选项的值,我需要检查,如果它大于ZERO。
到目前为止我有什么
在规则数组中
['year', 'required'],
['day', 'required'],
['month', 'checkDefaultValue'],...
自定义验证方法是
public function checkDefaultValue() {
if ($this->month > 0) {
$this->addError('month', 'Month error message...');
}
}
这段代码不起作用,有没有更好的方法呢?
答案
你可以做这样的事情
['month', 'in','range' => ['Jan','Feb']],
指定值的范围。
另一答案
您的代码无法正常工作,因为如果月份大于零,则会添加错误,这与您想要的相反。 这可行:
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!!!',
]
另一答案
你可以使用range
验证器,如果你还想做custom validation
this会帮助你。
以上是关于Yii2 - 表单验证规则:如何使用自定义验证功能或替代?的主要内容,如果未能解决你的问题,请参考以下文章
在 Laravel 5 中使用表单请求验证时如何添加自定义验证规则