表单类型中仅允许0 - 100作为百分比值

时间:2014-09-05 15:46:38

标签: symfony

我的表单中有一个百分比字段,我希望它的值介于0到100之间。我怎么能强制它并返回验证呢?

目前我甚至可以输入100.10,这是错误的。

注意:允许0.00和100.00

由于

ENTITY:

/**
 * @var decimal
 * @ORM\Column(type="decimal", precision=5, scale=2)
 */
protected $vatRate;

表格类型:

->add(
'vatRate',
'percent',
array('type' => 'integer', 'attr' => array('min' => '0', 'max' =>` '100'))
)

2 个答案:

答案 0 :(得分:3)

向实体添加constraint

use Symfony\Component\Validator\Constraints as Assert;

/* ... */

/**
 * @var decimal
 * @ORM\Column(type="decimal", precision=5, scale=2)
 * @Assert\Range(
 *      min = 0,
 *      max = 100,
 *      minMessage = "Min % is 0",
 *      maxMessage = "Max % is 100"
 * )
 */
 protected $vatRate;

答案 1 :(得分:1)

在您的实体中使用范围约束:

http://symfony.com/doc/current/reference/constraints/Range.html

use Symfony\Component\Validator\Constraints as Assert;

/**
 * @var decimal
 * @ORM\Column(type="decimal", precision=5, scale=2)
 * @Assert\Range(
 *      min = 0,
 *      max = 100
 * )
 */
protected $vatRate;