Symfony 2 validation message

家住魔仙堡 提交于 2019-12-13 19:32:46

问题


In symfony 2 i have a name filed that i want to validate it and if it contains number I want to show a message. My code is:

//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;

But when i write a number in field i see this message Please match the requested format because my field code is like below:

<input type="text" id="mzm_testbundle_category_name" name="mzm_testbundle_category[name]" required="required" maxlength="255" pattern="((?![0-9]).)*">

input tag has a pattern and error that i see is from HTML5. How can i resolsve this problem?


回答1:


The message you see is not coming from the Symfony validator directly. Form framework defines an html5 validation when possible, and the message is indeed coming from the client side validation.

Overriding the client side message

Constraint API's setCustomValidity() can be used to update the client side message.

You can either do it while defining a field:

$builder->add(
    'name',
    'text',
    [
        'attr' => [
            'oninvalid' => "setCustomValidity('Your name cannot contain a number')"
        ]
    ]
));

or in a twig template:

{{ form_row(
       form.name, 
       {
           'attr': {
               'oninvalid': "setCustomValidity('Your name cannot contain a number')"
           } 
       }
 ) }}

Disabling client side validation

You could also disable the html5 validation:

{{ form(form, {'attr': {'novalidate': 'novalidate'}}) }}

References

  • 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


来源:https://stackoverflow.com/questions/31129356/symfony-2-validation-message

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!