I have this code in Entity:
/**
* @Assert\Type(
* type="real",
* message="Price for vehicle service must be real number."
* )
*
* @ORM\Column(name="min_price", type="float")
*/
protected $minPrice;
But if in this form field is entered noninteger value, Symfony returns default locale error message (in my case Значение недопустимо), and not the "Price for vehicle service must be real number.". This is not comfortable, because in error not specified field name, and needed time to find this field if there are complex form.
Maybe as solution can be callback validation, but in my subjective opinion it would not appear, because user can see only locale default message. When I tried to avoid it adding @Assert\Regex(pattern="/+d/", message="custom message"), I anyway saw the locale default message.
Symfony Profiler shows error below:
Symfony\Component\Validator\ConstraintViolation
Object(Symfony\Component\Form\Form).children[vehiclePriceOutOfTown].children[minPrice] = g
Caused by:
Symfony\Component\Form\Exception\TransformationFailedException
Unable to reverse value for property path "minPrice": Number parsing failed: U_PARSE_ERROR
Caused by:
Symfony\Component\Form\Exception\TransformationFailedException
Number parsing failed: U_PARSE_ERROR