1

我正在使用以下代码来验证我的字段。
如果数字大于 10,则显示验证消息。

less_than[10]  

现在如果有人输入 10,那么也会显示验证消息。
我需要在 codeIgniter 中小于或等于 10 的代码。

提前致谢。

4

4 回答 4

4

只需使用less_than[11] 它会像小于或等于 10 ..

于 2013-07-02T05:36:53.883 回答
2

您可以向控制器添加回调,但我认为这不是最佳解决方案,因为这less_equals是一个非常常见的规则。

  • 您应该将回调函数添加到每个控制器
  • 你应该写callback_很多次。

我对这个问题(以及其他常见规则,如is_date)的解决方案是扩展表单验证库,如下所示:

创造application/libraries/MY_form_validation.php

class MY_Form_validation extends CI_Form_validation
{
    public function less_equals($str, $min)
    {
        if ( ! is_numeric($str)) return FALSE;
        return $str <= $min;
    }

    //other rules here...
 }

system/languaje/english/form_validation_lang.php使用相应的错误消息进行更新less_equals,您就完成了!现在它像任何其他 Codeigniter 默认验证规则一样工作。

希望能帮助到你!

于 2014-03-17T02:58:59.250 回答
2

在控制器中创建您自己的自定义回调函数,该函数维护您的表单验证规则并调用form_validation该类:

public function index()
{
    //...form stuff 

    $this->form_validation->set_rules('number', 'Number', 'callback_less_than_or_equal[10]');

    //...form stuff
}

public function less_than_or_equal($str, $max)
{
    if ( ! is_numeric($str))
    {
        return FALSE;
    }
    return $str <= $max;
}
于 2013-07-02T06:00:27.697 回答
0

您可以使用less_than_equal_to[10].

于 2016-10-03T17:32:47.790 回答