尝试通过注释在Symfony中设置自定义消息以进行验证。
这就是我的......
config.yml
validation: { enabled: true, enable_annotations: true }
实体中的......
/**
* @ORM\Column(type="string")
* @Assert\Length(
* min = 5,
* max = 6,
* minMessage = "Your first name must be at least {{ limit }} characters long",
* maxMessage = "Your first name cannot be longer than {{ limit }} characters"
* )
*/
private $nombre;
所以我尝试通过仅用1个字符填充输入来触发minMessage。它应显示minMessage,但它显示所有字段的相同消息(下图),即使对于那些在实体中没有注释的字段也是如此。
我做错了什么?
答案 0 :(得分:2)
您定义的这些验证仅是服务器端验证。您在屏幕截图中显示的消息是由浏览器引起的html5验证消息。
<input type="something" required="required" name="...">
我不知道西班牙语,所以我猜测你所呈现的字段不是文本类型,而且消息告诉你输入的值不是正确的格式。即数字类型字段中的文本。 (或者在这种情况下,可以设置字段的minlength属性)
要禁用表单的html5验证,请尝试使用
<form novalidate="novalidate" .....>
或使用像
这样的树枝语法{{ form_start(form, {'attr': {'novalidate': 'novalidate'} }) }}
然后html5验证将不再阻止表单提交并且您的后端验证开始。