我有一个表单,其中包含一个名为“价格”的元素。我使用“float”验证器验证此元素。问题是当我插入时,例如:
12,50 => 它是有效的,但是当我尝试将其保存在数据库(mysql)上时,它被保存为“12.00”
所以我想将小数字符从“,”更改为“.”。有谁知道怎么办吗??
笔记。如果我输入:
$price->addValidator('Float', 'de')
or
$validator = new Zend_Validate_Float(array('locale' => 'de'));
$price->addValidator($validator)
这是行不通的。
您可以使用过滤器 Zend_Filter LocalizedToNormalized 来根据用户的区域设置标准化您的本地化价格。
典型的价格要素如下所示:
$price = new Zend_Form_Element_Text('price');
$price->setLabel('Price:')
->setRequired(true)
->setAttribs(array('required name' => 'price', 'maxlength' => '12'))
->addFilter('StripTags')
->addFilter('StringTrim')
->addFilter('pregReplace', array('match' => '/\s+/', 'replace' => ''))
->addFilter('LocalizedToNormalized')
->addValidator('stringLength', true, array(1, 12))
->addValidator('float', true, array('locale' => 'en_US'))
->addValidator('greaterThan', true, array('min' => 0));
$this->addElement($price);
当然,您可以改进它并添加您需要的验证器/过滤器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)