Symfony选择字段类型在提交无效选项时会报告“此值无效”,我该如何更改?

12

我注意到在使用Symfony 2.3选择字段类型时,如果我试图提交一个无效选项(通过手动更改选项的值),Symfony会在那个字段上报告一个表单错误,指出“This value is not valid”(该值无效)。

然而,我在选择字段类型类中没有看到更改此消息的选项。我也没有为此字段设置验证约束。

这个错误消息来自哪里?我该如何更改它?


如果您在浏览器端(即 AJAX)更改选择字段,则可能需要使用表单事件侦听器。请参阅http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html。 - Alberto Gaona
3个回答

18

“The value is not valid”这句话是表单字段转换失败时的默认错误消息。如果数据转换器失败(在您的情况下,似乎尝试发送无效的选择值),则此错误消息与每个字段相关。如果您想覆盖它,可以使用invalid_messageinvalid_message_parameters表单类型选项。

我现在找不到此属性的官方文档,但您可以查看link以了解更多详情。


1
这是 invalid_message 属性文档的链接:https://symfony.com/doc/current/reference/forms/types/form.html#invalid-message 自 v2.3 版本以来,它已经从表单类型继承。 - userfuser

2

1
谢谢您的回复,但我没有为实体类设置任何验证约束,所以我怀疑它不是由此引起的。 - user3009816

-1

在设置参数的值为有效值或空值后,您可以获取参数的值以检查其是否有效。

提交表单后获取字段的值

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

在为其设置有效值后,检查其是否无效

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


            

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接