Jos*_*los 3 mysql zend-framework zend-form zend-validate zend-locale
我有一个带有"价格"元素的表单.我使用"float"验证器验证此元素.事情是我插入时,例如:
12,50 =>它有效,但当我尝试将其保存在DB(mysql)上时,它保存为"12.00"
所以我想将小数字符从","更改为".".有人知道吗?
注意.如果我把:
$price->addValidator('Float', 'de')
Run Code Online (Sandbox Code Playgroud)
要么
$validator = new Zend_Validate_Float(array('locale' => 'de'));
$price->addValidator($validator)
Run Code Online (Sandbox Code Playgroud)
这是行不通的.
Liy*_*ali 10
您可以使用过滤器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);
Run Code Online (Sandbox Code Playgroud)
当然,您可以改进它并添加所需的验证器/过滤器.
| 归档时间: |
|
| 查看次数: |
9185 次 |
| 最近记录: |