如何覆盖实体选择字段的默认验证消息


How to override default validation message of entity choice field?

我已经在我的User实体中定义了外键:

/**
 * @ORM'ManyToOne(targetEntity="Region")
 */
protected $region;

我想在表单中使用它作为选择字段。

$builder->add('region');

实际上工作得很好,直到我想验证是否选择是有效的实体id。事实上,这也很有效,但我得到This value is not valid错误信息,我需要重写/翻译它,我不知道如何。这是一种自动验证。从逻辑上讲,如果我设置@Assert'Choice...,我想说它应该是可重写的,但即使我用虚拟值(message="You shall not pass", choices={1,2})尝试它,它似乎完全忽略了它。

使用message参数:

@Assert'Choice(message="This is not a valid region")

或multiemessage参数,如果您允许多个选择:

@Assert'Choice(multipleMessage="...")

见http://symfony.com/doc/2.0/reference/constraints/Choice.html