我有一个“选择”类型的表单小部件,它显示为许多复选框的列表。一切都很好。所以强调一下:有一个小部件,带有许多复选框(而不是几个复选框小部件)。
现在,我想禁用其中一些复选框。该数据在 $options-Array 中可用。
这是我的 FooType.php 的 buildForm() 函数
...
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('foo', 'choice', array('choices' => $options['choiceArray']['id'],
'multiple' => true,
'expanded' => true,
'disabled' => $options['choiceArray']['disabled'] // does not work (needs a boolean)
'data' => $options['choiceArray']['checked'], // works
'attr' => array('class' => 'checkbox')))
;
}
...
我的 Twig 模板如下所示:
{% for foo in fooForm %}
<dd>{{ form_widget(foo) }}</dd>
{% endfor %}
我只能禁用所有复选框(通过在 buildForm 中设置 'disabled' => true )。并且在那里传递一个数组不起作用(如代码段中所述)。
如何禁用我的选择小部件的某些选中的复选框(存储在 $options['choiceArray']['disabled'] 中)?