Symfony 2 验证消息
Symfony 2 validation message
在 symfony 2 中,我有一个 name
文件,我想验证它,如果它包含数字,我想显示一条消息。我的代码是:
//Entity/Product.php
/**
* @ORM\Column(name="`name`", type="string", length=255)
* @Assert\NotBlank()
* @Assert\NotNull()
* @Assert\Regex(pattern="/[0-9]/",match=false,message="Your name cannot contain a number")
*/
protected $name;
但是当我在字段中写一个数字时,我看到这条消息 Please match the requested format
因为我的字段代码如下所示:
<input type="text" id="mzm_testbundle_category_name" name="mzm_testbundle_category[name]" required="required" maxlength="255" pattern="((?![0-9]).)*">
输入标签有一个模式,我看到的错误来自 HTML5。我该如何解决这个问题?
您看到的消息并非直接来自 Symfony 验证程序。表单框架在可能的情况下定义了一个 html5 验证,消息确实来自客户端验证。
覆盖客户端消息
Constraint API's setCustomValidity()可用于更新客户端消息。
您可以在定义字段时执行此操作:
$builder->add(
'name',
'text',
[
'attr' => [
'oninvalid' => "setCustomValidity('Your name cannot contain a number')"
]
]
));
或在树枝模板中:
{{ form_row(
form.name,
{
'attr': {
'oninvalid': "setCustomValidity('Your name cannot contain a number')"
}
}
) }}
禁用客户端验证
您还可以禁用 html5 验证:
{{ form(form, {'attr': {'novalidate': 'novalidate'}}) }}
参考资料
- How can I change or remove HTML5 form validation default error messages?
- Overriding Form Validation messages on symfony2
- HTML5 form required attribute. Set custom validation message?
- Symfony2 disable HTML5 form validation
在 symfony 2 中,我有一个 name
文件,我想验证它,如果它包含数字,我想显示一条消息。我的代码是:
//Entity/Product.php
/**
* @ORM\Column(name="`name`", type="string", length=255)
* @Assert\NotBlank()
* @Assert\NotNull()
* @Assert\Regex(pattern="/[0-9]/",match=false,message="Your name cannot contain a number")
*/
protected $name;
但是当我在字段中写一个数字时,我看到这条消息 Please match the requested format
因为我的字段代码如下所示:
<input type="text" id="mzm_testbundle_category_name" name="mzm_testbundle_category[name]" required="required" maxlength="255" pattern="((?![0-9]).)*">
输入标签有一个模式,我看到的错误来自 HTML5。我该如何解决这个问题?
您看到的消息并非直接来自 Symfony 验证程序。表单框架在可能的情况下定义了一个 html5 验证,消息确实来自客户端验证。
覆盖客户端消息
Constraint API's setCustomValidity()可用于更新客户端消息。
您可以在定义字段时执行此操作:
$builder->add(
'name',
'text',
[
'attr' => [
'oninvalid' => "setCustomValidity('Your name cannot contain a number')"
]
]
));
或在树枝模板中:
{{ form_row(
form.name,
{
'attr': {
'oninvalid': "setCustomValidity('Your name cannot contain a number')"
}
}
) }}
禁用客户端验证
您还可以禁用 html5 验证:
{{ form(form, {'attr': {'novalidate': 'novalidate'}}) }}
参考资料
- How can I change or remove HTML5 form validation default error messages?
- Overriding Form Validation messages on symfony2
- HTML5 form required attribute. Set custom validation message?
- Symfony2 disable HTML5 form validation