如何在symfony 2中创建一个用逗号或句点接受数字的数字字段

时间:2012-08-19 11:16:56

标签: symfony decimal

我有一个带小数字段的应用程序,如:

/**
 * @var decimal $amount
 *
 * @ORM\Column(name="amount", type="decimal", scale="2")
 */
private $amount;

我希望表单接受格式为“3,4”或“3.4”的数字。

如果我输入“3.4”应用程序保存在数据库“3.4”中,如果我输入“3,4”,应用程序将保存在数据库“34”中(是的,没有逗号且没有显示验证错误!)。< / p>

(这是一个已知的symfony bug:https://github.com/symfony/symfony/issues/2059

那么,我如何接受带逗号和小数点的数字?

(我已经尝试用DataTrasformer中的点替换逗号,但是DataTransformer将该数字标准化。)

2 个答案:

答案 0 :(得分:5)

我找到了使用带有appendClientTransformer的DataTransformer的解决方法,以下是代码段:https://gist.github.com/3394880

答案 1 :(得分:3)

我遇到了同样的问题,我决定在不使用语言环境格式化程序的情况下创建自己的数字字段。这是我提出的变压器: https://gist.github.com/3411067

注意:我必须做的一件事就是抛出TransformationFailedException来验证是否合适。