5

我有一个带有十进制字段的应用程序,例如:

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

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

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

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

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

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

4

2 回答 2

5

我找到了一个使用带有 appendClientTransformer 的 DataTransformer 的解决方法,这里是片段:https ://gist.github.com/3394880

于 2012-08-19T13:48:56.080 回答
3

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

注意:我必须做的一件事是抛出TransformationFailedException以获得正确的验证。

于 2012-08-21T03:23:58.163 回答