场属性比方说,我们有一个表单生成器定义这样一种形式:变化运行
$builder
->add('username', 'text', ['disabled' => false]);
我们可以改变一个form.username
项目的属性disabled
的$form
实例被创建后?
我发现,你可以用
$formBuilder->get('username')->getAttributes('data_collector/passed_options')['data_collector/passed_options']
获得的属性,然后用相应setAttributes
更换。
但它看起来超级肮脏。
我发现的另一种替代方法是$formBuilder->remove
和->add()
元素回来。这也是丑陋的。
那么,任何正确的方法来设置它?
该方案:窗体是建立,然后验证,如果它是无效的情况下,我需要标记一个字段禁用,并再次呈现它。
这是丑陋的一样好,但它正式回答了这个问题,谢谢。在这个项目中,我会'删除 - 添加'它 - 2行比10+和事件更容易维护。 – zerkms
我相信这实际上是处理动态元素的推荐方式,但我同意它看起来很麻烦 –
“推荐的方式”---因为被推荐它太有限了,无论如何,没关系:-) – zerkms