10

How to override the form validation messages in symfony2. Though there is a validation.xml file related model classes. I think it validates a form based on html5.

"Please match the requested format", "Please fill out this field". Is there any way to override this validation messages.

Please help me in this regard, i am stuck for more than a day, as i am totally new to symfony

2 Answers 2

14

Those messages you see are HTML5 validation messages which are created by the browser. If you want to override them you need to add an oninvalid attribute to the input tag associated with that field. You can do this in two ways:

In your controller or form type, add this attribute to the form field:

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

Or, in your twig template, add this attribute when rendering the form field:

{{ form_row(form.email, { 'attr': {'oninvalid': "setCustomValidity('Please give me a nice email')"} }) }}
Sign up to request clarification or add additional context in comments.

4 Comments

Thanks, this is what i am looking for. Timely one :)
But if you do it this way, you enter a invalid email address, then the error comes up, your correct the emailaddress but the error is still coming up. Why?
Carlos' answer is almost correct, but has some issues. See "stackoverflow.com/questions/10361460/…" for workaround.
I get the error message "The option "oninvalid" does not exist. "
3

You can change the message of each validator thanks to the message option when declaring the assert:

/**
     * @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"}
     * )

Also you can apply translation by creating the file MyBundle/Resources/translations/validators.fr.xliff

2 Comments

No, the messages he refers to are HTML5 validation messages which are created by the browser
Damn I have not seen that ^^'

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.