Мне нужно поле ввода для поля цены для немецкого веб-сайта. Поэтому я добавил 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'
]
]
]
],
];
}
Я бы предложил использовать ViewHelper
что делает поплавок с ,
вместо .
, Изменение хранения данных в базе данных и внутренняя обработка чисел с помощью ,
Сепаратор, кажется, не правильный путь и определенно вызовет проблемы.
Есть даже встроенный форматер валюты посмотреть помощник в ZF2 что вы можете использовать.
Для обозначения вашей немецкой валюты это будет так просто:
echo $this->currencyFormat(1234.56, 'EUR', null, 'de_DE');
Других решений пока нет …