多くのチェックボックスのリストとして表示されている「選択」タイプのフォームウィジェットがあります。すべてがうまく機能します。強調するために、多くのチェックボックスを備えた1つのウィジェットがあります(いくつかのチェックボックスウィジェットではありません)。
ここで、これらのチェックボックスのいくつかを無効にしたいと思います。そのためのデータは $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で「無効」=> trueを設定することにより)。そして、そこに配列を渡すことは機能しません(スニペットでコメントされているように)。
選択したウィジェットの選択されたチェックボックス ($options['choiceArray']['disabled'] に保存) を無効にするにはどうすればよいですか?