Symfony2は、入力フィールドの値を10進数または整数のタイプで自動的に変換します。アプリには2つの言語があります。アラビア語と英語です。次のフィールドでエンティティを作成しました。
/**
* @var float $price
*
* @ORM\Column(name="price", type="decimal", scale=2, nullable=true)
*
* @Assert\Regex(pattern="/^[0-9]+(\.\d{1,2})?$/",message="Incorrect price.")
* @Assert\Type(type="float")
* @Assert\Min(0)
*/
private $price;
フォームでは、sfにフィールドタイプを推測させます。
$builder->add('price')
このエンティティを編集するためのフォームをアラビア語インターフェースでロードします。価格フィールドでは、١٢٫٤
の代わりに表示され12.40
ます。HTML5の検証に失敗したため、フォームを保存できません。現在のフィールドに12.40と入力してエンティティを保存すると、12.40ではなく12が保存されます。
なんで?それを無効にする方法は?アラビア数字を検証する方法は?助言がありますか?
編集:解決済み、以下を参照