Codeigniter 验证——如何限制数值?
Posted
技术标签:
【中文标题】Codeigniter 验证——如何限制数值?【英文标题】:Codeigniter validation--how to limit numerical value? 【发布时间】:2011-01-01 01:23:33 【问题描述】:我只需要添加一个验证类来限制数字条目大于 24。
这是否可以通过 CI 的默认验证类实现,还是我必须编写自定义验证类?
【问题讨论】:
只是好奇为什么这被否决了? 【参考方案1】:您可以使用验证规则“greater_than[24]
”
喜欢例子
$this->form_validation->set_rules('your_number_field', 'Your Number', 'numeric|required|greater_than[24]');
【讨论】:
【参考方案2】: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'
);
【讨论】:
【参考方案3】:当然可以,只需制作自己的验证函数并将其作为回调添加到验证规则即可。见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;
【讨论】:
以上是关于Codeigniter 验证——如何限制数值?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 codeigniter form_validation 类中允许空值或数值?
将特定页面限制为仅在 Codeigniter 中登录用户的最佳实践是啥?