【发布时间】:2015-07-03 05:45:05
【问题描述】:
我需要根据给定字段的值禁用/重新启用表单字段。为了实现它,我在 onPreSubmit 事件上使用了一个监听器。然后,如果一个字段应该被禁用,它会再次添加到表单中
$form->add('name', 'text', array("disabled" => "disabled");
从某种意义上说,这很好用:如果一个字段已启用但应该禁用,那么结果就可以了。 在另一种意义上,如果一个字段被禁用,那么这个字段就不会被发送。在侦听器中,该字段已启用,但在最终结果中,初始值不再存在。
我假设,因为该字段被禁用,它没有被发送,所以 Symfony 认为它有一个空值。从 preSubmit 或 Submit 事件的侦听器,如果我这样做:
$event->getData()
然后将所有在表单中但不在 POST 数据中的字段设置为 null。 有没有办法简单地激活字段,保持初始值?还是不考虑缺失字段的价值?
【问题讨论】: