如何使用Symfony2 / 3中的范围验证器显示单个超出范围的消息?

时间:2016-07-29 06:45:45

标签: php validation symfony annotations doctrine

Symfony2中的Range约束允许您指定最小值和最大值,并根据输入超出或低于限制显示消息。

 /**
  * @Assert\Range(
  *      min = 120,
  *      max = 180,
  *      minMessage = "You must be at least {{ limit }}cm tall to enter",
  *      maxMessage = "You cannot be taller than {{ limit }}cm to enter"
  * )
  */

如何指定与最小值或最大值无关的通用消息?例如:

 /*
  * ...
  *      outOfRangeMessage = "You must be between {{ min }} and {{ max }} to enter."
  * ...
  */

没有这样的outOfRangeMessage参数。有一个invalidMessage参数,但只有当输入根本不是一个数字时才会返回,但这并不适用于我的目的。

最糟糕的做法是对minmax值进行硬编码并重复两次,如下所示:

 /*
  * ...
  *      minMessage = "You must be between 120 and 180 to enter.",
  *      maxMessage = "You must be between 120 and 180 to enter."
  * ...
  */

但这太可怕了。

1 个答案:

答案 0 :(得分:0)

没有办法做到这一点。您只能在邮件中使用limitvalue参数。您还可以覆盖RangeValidator:validate方法以添加更多参数