是否可以使用或在codeigniter表单验证?

时间:2012-04-22 11:19:29

标签: php codeigniter codeigniter-2

我有一个输入,可以是十进制或数字。我想使用这个规则:

$this->form_validation->set_rules('price', 'Price', 'decimal|numeric');

但我认为form_validation helper中的规则不能使用“或”语句。如果价格是“149.99”那么它是有效的,但如果价格是“150”则不是。

我错过了什么或不可能使用类似的东西:

 $this->form_validation->set_rules('price', 'Price', 'decimal or numeric');

3 个答案:

答案 0 :(得分:5)

CI,在验证时不允许混合数据类型。而是创建自定义验证规则。

宣布像这样的规则

$this->form_validation->set_rules('price', 'Price', 'callback_decimal_numeric');

在控制器上创建方法后

    public function decimal_numeric($str)
    {
        if ($str <isdecimal&nummeric>) //Use your logic to check here
        {
            $this->form_validation->set_message('decimal_numeric', 'The %s field validation has failed');
            return FALSE;
        }
        else
        {
            return TRUE;
        }
    }

答案 1 :(得分:0)

The decimal rule requires a parameter to be passed

http://codeigniter.com/user_guide/libraries/form_validation.html#rulereference

答案 2 :(得分:0)

使用(必需|十进制)这个 例如:
 $this->form_validation->set_rules('lat', 'Latitude', 'required|decimal');