【发布时间】:2011-01-01 01:23:33
【问题描述】:
我只需要添加一个验证类来限制数字条目大于 24。
这是否可以通过 CI 的默认验证类实现,还是我必须编写自定义验证类?
【问题讨论】:
-
只是好奇为什么这被否决了?
我只需要添加一个验证类来限制数字条目大于 24。
这是否可以通过 CI 的默认验证类实现,还是我必须编写自定义验证类?
【问题讨论】:
您可以使用验证规则“greater_than[24]”
喜欢例子
$this->form_validation->set_rules('your_number_field', 'Your Number', 'numeric|required|greater_than[24]');
【讨论】:
Form Validation Rule Reference 中没有最大值或最小值比较功能,所以您可以只使用write your own validation function。
这很简单。像这样的东西应该可以工作:
function maximumCheck($num)
{
if ($num > 24)
{
$this->form_validation->set_message(
'your_number_field',
'The %s field must be less than 24'
);
return FALSE;
}
else
{
return TRUE;
}
}
$this->form_validation->set_rules(
'your_number_field', 'Your Number', 'callback_maximumCheck'
);
【讨论】:
当然可以,只需制作自己的验证函数并将其作为回调添加到验证规则即可。见http://codeigniter.com/user_guide/libraries/form_validation.html#callbacks
因此,您将拥有
...
$this->form_validation->set_rules('mynumber', 'This field', 'callback_numcheck');
....
function numcheck($in) {
if (intval($in) > 24) {
$this->form_validation->set_message('numcheck', 'Larger than 24');
return FALSE;
} else {
return TRUE;
}
}
【讨论】: