2010-01-03 63 views
3

我只需要添加一个验证类,以限制数字条目大于24.Codeigniter验证 - 如何限制数值?

这可能与CI的默认验证类或我将不得不编写自定义验证类吗?

+0

只是好奇,为什么这是downvoted? – 2010-01-04 03:21:04

回答

5

有一个在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; 
    } 
} 
+0

感谢您的回答! – 2010-01-04 03:21:52

6

您可以使用验证规则 “greater_than[24]

例如像

$this->form_validation->set_rules('your_number_field', 'Your Number', 'numeric|required|greater_than[24]');