10

symfony2 でフォーム検証メッセージをオーバーライドする方法。モデルクラスに関連するvalidation.xmlファイルがありますが。html5に基づくフォームを検証すると思います。

「要求されたフォーマットに合わせてください」、「このフィールドに入力してください」。この検証メッセージをオーバーライドする方法はありますか?

この点で私を助けてください、私はsymfonyにまったく慣れていないので、1日以上立ち往生しています

4

2 に答える 2

14

表示されるメッセージは、ブラウザによって作成されたHTML5検証メッセージです。それらをオーバーライドする場合は、そのフィールドに関連付けられている入力タグにoninvalid属性を追加する必要があります。これは2つの方法で実行できます。

コントローラまたはフォームタイプで、次の属性をフォームフィールドに追加します。

$builder->add('email', 'email',array(
    'attr'=>array('oninvalid'=>"setCustomValidity('Would you please enter a valid email?')")
));

または、Twigテンプレートで、フォームフィールドをレンダリングするときに次の属性を追加します。

{{ form_row(form.email, { 'attr': {'oninvalid': "setCustomValidity('Please give me a nice email')"} }) }}
于 2012-09-04T07:31:15.890 に答える
3

アサートを宣言するときのメッセージオプションのおかげで、各バリデーターのメッセージを変更できます。

/**
     * @ORM\Column(type="string", length=255, unique=true)
     * @Assert\NotBlank(
     *     message="You have to choose a username (this is my custom validation message).",
     *     groups={"registration", "account", "oauth"}
     * )

また、ファイルMyBundle / Resources / translations/validators.fr.xliffを作成して翻訳を適用することもできます。

于 2012-09-04T07:31:32.903 に答える