2016-07-29 22 views
1

Symfony2中的Range约束条件允许您指定带有要显示的消息的最小值和最大值,具体取决于输入超出或低于限制。如何在Symfony2/3中使用范围验证器显示单个超出范围的消息?

/** 
    * @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

您没有其他选择可以创建您自己的验证器。 – Alsatian

+0

@Alsatian这根本不是一个坏主意。 – aalaap

回答

0

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

+0

这听起来很有趣。你能否详细说明压倒一切的部分?你能指出一个例子吗? – aalaap