Я занимаюсь разработкой CMS с использованием Sonata и Symfony 3.
Я использовал библиотеку JavaScript AutoNumeric, чтобы числовое поле содержало запятые, чтобы сделать приложение более удобным для пользователя.
Проблема в том, что теперь, когда я пытаюсь сохранить запись, сервер помечает поле сообщением «это значение недопустимо». Вот аннотация, которую я использую на поле:
/**
* @var float
*
* @ORM\Column(name="amount", type="decimal", scale=2, precision=12, nullable=true)
* @Assert\NotNull(message = "validator.not_blank")
* @Assert\Range(
* min = 0,
* max = 9999999999
* )
*/
Есть ли способ сказать моему серверному валидатору вычеркнуть запятые перед проверкой?
===
Редактировать # 1: Это поле использует NumberType в качестве своего типа. Вот соответствующий код администратора:
->add(
'amount',
NumberType::class,
array(
'label' => 'list.label.salary.amount',
'scale'=> 2,
'required' => true,
'attr' => array(
"class" => "compensation-number",
),
)
)
Мой JavaScript создает новый экземпляр AutoNumeric с полем формы в качестве входного элемента.
Редактировать # 2: Другими словами, это поле обрабатывается как строка в браузере, и мне нужно преобразовать это значение в число с плавающей точкой, прежде чем оно будет сохранено в базе данных. Я не уверен, как лучше это сделать.