symfony2 でフォーム検証メッセージをオーバーライドする方法。モデルクラスに関連するvalidation.xmlファイルがありますが。html5に基づくフォームを検証すると思います。
「要求されたフォーマットに合わせてください」、「このフィールドに入力してください」。この検証メッセージをオーバーライドする方法はありますか?
この点で私を助けてください、私はsymfonyにまったく慣れていないので、1日以上立ち往生しています
symfony2 でフォーム検証メッセージをオーバーライドする方法。モデルクラスに関連するvalidation.xmlファイルがありますが。html5に基づくフォームを検証すると思います。
「要求されたフォーマットに合わせてください」、「このフィールドに入力してください」。この検証メッセージをオーバーライドする方法はありますか?
この点で私を助けてください、私はsymfonyにまったく慣れていないので、1日以上立ち往生しています
表示されるメッセージは、ブラウザによって作成された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')"} }) }}
アサートを宣言するときのメッセージオプションのおかげで、各バリデーターのメッセージを変更できます。
/**
* @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を作成して翻訳を適用することもできます。