を引き起こさない:symfonyの - 整数タイプフィールドの10進数は、これは、エンティティのフィールドでない検証エラー
/**
* @Assert\NotBlank(groups={"group1"})
* @Assert\Type(type="integer", groups={"group1"})
* @Assert\Range(min=0, groups={"group1"})
* @ORM\Column(type="integer")
*/
private $cableCount;
、これはフォームタイプに対応するフィールドである。
$builder->add('cableCount', IntegerType::class, [
'label' => 'Cable Count',
'required' => true
]);
フィールドであります上矢印と下矢印でレンダリングし、ユーザーは1、2、3、...のような値を増減できます。 しかし、ユーザーは3.45を入力してフォームを送信することもできます。検証エラーは表示されません。値は3に丸められます。予想される動作は、このフィールドが整数だけを受け入れることができることをユーザーに通知する検証エラーを取得することです。
この問題をどのように解決すればよいですか? これにsymfonyの組み込み機能がありますか?それともカスタム制約を作成すべきですか?
/** @Assert\Regex(pattern="/^\d*$/") */
編集:@JasonRomanによってmentionnedとして、あなたが最初に自動的に入力を丸めますIntegerTypeに対処する必要があなたは正規表現を使用しようとすることができ
は小枝がフォームをオーバーライドして、私の答えを更新しました。 –