【发布时间】:2018-03-07 10:36:30
【问题描述】:
我的实体中有这个断言:
/**
* @Assert\Choice(choices = {"fiction", "non-fiction"}, message = "Choose a valid genre.")
*/
protected $genre;
文档中提到了 message 参数:
类型:字符串
默认值:您选择的值无效。
这是您将收到的消息,如果多重选项设置为 false,并且基础值不在有效的选项数组中。
在我的表单类型中,我有:
->add('genre', ChoiceType::class, [
'multiple' => false,
])
但是,当 gender 字段的值不在有效的选项数组(“小说”、“非小说”)中时,消息错误为“此值无效。 "
不是默认值,也不是我在实体中设置的值。
我知道我可以在表单类型中使用“invalid_message”参数覆盖它, 但我想如果对此有解释?
为什么 Assert/Choice 的“message”参数不起作用? 我怎样才能让它像 symfony doc 中预期的那样工作?
【问题讨论】:
-
尝试将multiple设置为true,因为错误提示“这是如果multiple选项设置为false时您将收到的消息......”只是一个简单的备注
-
据我了解,我们在 Assert/Choice message 属性中设置的消息是如果将多个设置为 false 时我们收到的消息,就像在我的示例中一样。我也尝试将多个设置为 true,但消息始终是“此值无效。”
标签: php symfony validation assert