我需要一个德国网站价格字段的输入字段。因此,我添加了NumberFormat
过滤器和IsFloat
验证程序。输入的价格(例如7,5
)以7.5
格式正确存储到数据库双字段。但现在的问题是,如果我不想编辑该字段,它会以7.5
格式填充给用户,但是他无法保存,因为它不是德语格式。所以他必须用"."
替换","
。
有没有办法用","
而不是"."
来填充数字?
public function getInputFilterSpecification() {
return [
'price' => [
'required' => true,
'filters' => [
[
'name' => 'NumberFormat',
'options' => [
'locale' => 'de_DE'
]
]
],
'validators' => [
[
'name' => 'IsFloat',
'options' => [
'locale' => 'de_DE'
]
]
]
],
];
}
答案 0 :(得分:2)
我建议使用ViewHelper
使用,
代替.
来渲染浮点数。更改数据库中的数据存储并使用,
分隔符在内部处理浮动似乎不是正确的方法,肯定会导致问题。
您可以使用 ZF2 中的 inbuilt currency formatter 视图助手。
对于您的德语货币表示法,它将如下所示:
echo $this->currencyFormat(1234.56, 'EUR', null, 'de_DE');