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 表单验证

将特定页面限制为仅在 Codeigniter 中登录用户的最佳实践是啥?

Codeigniter 组通过仅返回第一行

如何在codeigniter中将上传图片比例限制为16:9?

如何在codeigniter中验证表单