在symfony形式中,如何验证parmeter是否为整数,如果它是浮点数则会生成错误?

时间:2017-10-30 12:24:27

标签: forms symfony validation integer

Symfony表单允许浮动但没有错误,并且默默地舍入。如果输入值是浮点数,如何引发错误?

我的实体看起来像这样;

use Symfony\Component\Validator\Constraints as Assert;

class Charge
{

    /**
     * @Assert\NotBlank(message="Amount is required.")
     * @Assert\Type(type="int", message="Amount must be an integer.")
     */
    protected $amount;
}

我的表单看起来像这样;

class NewChargeType extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->setMethod('POST')
            ->add('amount', Type\IntegerType::class);
    }
}

1 个答案:

答案 0 :(得分:0)

您可以尝试添加Regex验证,仅需要整数

use Symfony\Component\Validator\Constraints as Assert;

class Charge
{

    /**
     * @Assert\NotBlank(message="Amount is required.")
     * @Assert\Type(type="int", message="Amount must be an integer.")
     * @Assert\Regex("/^-?[0-9]\d*$/", message="Amount must be an integer.")
     */
    protected $amount;
}