【问题标题】:Codeigniter validation--how to limit numerical value?Codeigniter 验证——如何限制数值?
【发布时间】:2011-01-01 01:23:33
【问题描述】:

我只需要添加一个验证类来限制数字条目大于 24。

这是否可以通过 CI 的默认验证类实现,还是我必须编写自定义验证类?

【问题讨论】:

  • 只是好奇为什么这被否决了?

标签: validation codeigniter


【解决方案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;
        }
      }
      

      【讨论】:

        猜你喜欢
        • 2013-07-20
        • 1970-01-01
        • 2017-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-26
        相关资源
        最近更新 更多