Symfony验证不显示消息

时间:2016-07-15 11:13:12

标签: validation symfony twig

尝试通过注释在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,但它显示所有字段的相同消息(下图),即使对于那些在实体中没有注释的字段也是如此。

enter image description here

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您定义的这些验证仅是服务器端验证。您在屏幕截图中显示的消息是由浏览器引起的html5验证消息。

<input type="something" required="required" name="...">

我不知道西班牙语,所以我猜测你所呈现的字段不是文本类型,而且消息告诉你输入的值不是正确的格式。即数字类型字段中的文本。 (或者在这种情况下,可以设置字段的minlength属性)

要禁用表单的html5验证,请尝试使用

<form novalidate="novalidate" .....>

或使用像

这样的树枝语法
{{ form_start(form, {'attr': {'novalidate': 'novalidate'} }) }}

然后html5验证将不再阻止表单提交并且您的后端验证开始。