2

多くのチェックボックスのリストとして表示されている「選択」タイプのフォームウィジェットがあります。すべてがうまく機能します。強調するために、多くのチェックボックスを備えた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'] に保存) を無効にするにはどうすればよいですか?

4

2 に答える 2