我正在使用Sonata和Symfony3。
开发CMS我已经使用JavaScript自动库库迫使数字字段包含逗号,以使应用程序更加用户友好。
问题是,现在,当我尝试保存记录时,服务器会以"此值无效"消息标记字段。这是我在字段上使用的注释:
/**
* @var float
*
* @ORMColumn(name="amount", type="decimal", scale=2, precision=12, nullable=true)
* @AssertNotNull(message = "validator.not_blank")
* @AssertRange(
* 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创建了一个新的自动化实例,将表单字段作为其输入元素。
编辑#2:换句话说,该字段被视为浏览器中的字符串,我需要将该值转换为浮点,然后才能将其存储在数据库中。我不确定如何最好地做到这一点。
我最终在树枝模板中重复了字段,然后使用javaScript隐藏"真实"输入。然后,我有一个JavaScript侦听器更新了"真实"值,并使用用户可见的格式数字的清理版本。解决了我的问题。