ZF2 Поплавковый ввод для ценового поля для немецкого сайта

Мне нужно поле ввода для поля цены для немецкого веб-сайта. Поэтому я добавил 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'
]
]
]
],
];
}

1

Решение

Я бы предложил использовать ViewHelper что делает поплавок с , вместо ., Изменение хранения данных в базе данных и внутренняя обработка чисел с помощью , Сепаратор, кажется, не правильный путь и определенно вызовет проблемы.

Есть даже встроенный форматер валюты посмотреть помощник в ZF2 что вы можете использовать.

Для обозначения вашей немецкой валюты это будет так просто:

echo $this->currencyFormat(1234.56, 'EUR', null, 'de_DE');
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]