Symfony choice field type reports "This value is not valid" when submitting an invalid option. How do I change this?
Asked Answered
Q

3

12

I've noticed that when using the Symfony 2.3 choice field type, if I try to submit an invalid option (by manually changing the value of an option), symfony reports a form error on that field that says "This value is not valid".

However, I see no option to change this message in the choice field type class. I have not validation constraints set up for this field either.

Where is this error message coming from, and how do I change it?

Quid answered 19/11, 2013 at 17:9 Comment(1)
Yoy might need to use form event listeners if you change choice fields browser-side (i.e. AJAX). Please see symfony.com/doc/current/cookbook/form/…Abrego
M
18

The sentence "The value is not valid" is the default error message which results of a form field transformation failure. This error message is related to each field in case of a data transformer failed (in your case it seems you try to send an invalid choice value). If you want to override it, you can use the invalid_message & invalid_message_parameters form type options.

I can't find the official documentation of this property right now but you can take a look to this for more details: link

Masterful answered 19/11, 2013 at 19:18 Comment(1)
Here's the link to invalid_message property doc: symfony.com/doc/current/reference/forms/types/… It is inherited from the Form Type, since v2.3Semeiology
C
2

The message is coming from the choice constraint, not the choice field type class.

http://symfony.com/doc/current/reference/constraints/Choice.html

The message option can be overridden with your own message.

Caulis answered 19/11, 2013 at 17:23 Comment(1)
Thanks for your reply, but I have not setup any validation constraints for the entity class so I doubt that it is stemming from that.Quid
T
-1

You can get value of parameter to check is valid after set value valid or null for it.

Get value of field after submit form

   $name = $request->request->get('name');

Check it is not valid after set value valid for it

if (empty($name)) {
  $request->request->set('name', 'your name');
}


            
Tansey answered 3/2, 2021 at 3:48 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.