尽管没有约束,Symfony会在表单字段上返回NotBlank错误消息

时间:2017-06-01 22:36:36

标签: symfony symfony-3.2

经过多次Google搜索(包括阅读许多Stack Overflow问题和答案)以及花费几个小时阅读Symfony源代码(无济于事),我最终决定在此处创建一个帐户并询问社区。

我的问题是,应该是可选的表单字段在未填写时返回标准的NotBlank错误消息,尽管底层实体属性没有NotBlank约束 - 实际上设置为允许空值:

/**
 * @ORM\Column(type="integer", nullable=true)
 * @Assert\Type("integer")
 */
protected $delay_actual;

此外,虽然严重不太严重,但我必须手动将其设置为表单类型中不需要,尽管事实上我正在使用猜测:

->add('delay_actual', null, [
    'required' => false,
    'label_format' => 'delay.delay_act'
])

表单在AJAX控制器操作中处理,没有任何额外的操作(即每个字段直接绑定到实体)。表单在其自己的Twig模板中显示如下:

{{ form_start(form) }}
{{ form_end(form) }}

我尝试从属性中移除@Assert\Type("integer"),但这没有用。我还尝试添加@Assert\Blank()只是为了看看它会产生什么影响,它确实阻止了NotBlank错误,但显然这不是一个真正的解决方案。

无论如何,在使用Symfony平台时,在表单中有一个简单的可选字段应该是一件很痛苦的事。任何人都知道我可能会缺少什么?

更新:这最终通过更新Symfony来解决,证明它是由框架中的错误引起的。

0 个答案:

没有答案