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?
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:
or in a twig template:
Disabling client side validation
You could also disable the html5 validation:
References