【发布时间】:2015-06-28 16:15:53
【问题描述】:
我有一个表单,其中包含一个需要整数的字段。这是表单类型实体定义中的字段定义:
/**
* @ORM\Column(type="integer", nullable=true)
* @Assert\Type(type="integer", message="Number of pieces must be a number.")
* @Assert\GreaterThanOrEqual(value=1, message="Number of pieces cannot be lower than 1.")
*/
protected $numberOfPiecesSent;
相关的表单构建器如下所示:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('numberOfPiecesSent', 'integer', array('label' => 'Number of pieces sent:', 'required' => false));
}
当我在字段中提交带有非数字值的表单(例如,'aaa')时,它只是保存表单并将字段 numberOfPiecesSent 保留在数据库中,而不是验证失败。我还尝试使该字段为非NULL,但这没有帮助。请告诉我为什么这不起作用?
【问题讨论】:
-
你可以试试regex
-
令人惊讶的是,即使是正则表达式也不起作用。这很奇怪,因为 GreaterThanOrEqual() 断言有效,所以总的来说,我的断言有效。
-
查看下面的答案。
标签: validation symfony