Symfony断言整数字段的奇怪行为


Symfony Assert on integer field strange behaviour

我的实体中有一个整数字段,我想在正整数值上验证它:

/**
 * @ORM'Column(type="integer")
 *
 * @Assert'NotBlank()
 * @Assert'Type("integer")
 * @Assert'Range(min=1)
 */
protected $size;

此表单类型为:

 ->add('size', 'integer', array())

当我进入时,我得到了奇怪/意想不到的结果

  • nothing:此值不应为空
  • 负整数:该值应为1或更大
  • text:此值不应为空
  • 双值:已接受
  • 整数值:已接受

我所期望/想要的:

  • nothing:此值不应为空
  • 负整数:该值应为1或更大
  • text:此值应为整数
  • double value:此值应为整数
  • 整数值:已接受

希望你能帮助我,当做

对于文本:

->add('size', 'integer', array(
    'invalid_message' => 'This value should be an integer',
))

对于double,这是不可接受的(使用is_int()函数)。

但是您可以使用正则表达式,其模式为:''d+