我有一个输入,可以是十进制或数字。我想使用这个规则:
$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');
答案 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')
;