SuperType
エンティティのフォームがありますSuper
。
このフォームには、エンティティcollection
のフォームタイプのフィールドがありますChildType
Child
class SuperType:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('childrens', 'collection', array(
'type' => new ChildType(null, array('my_custom_option' => true)),
}
class ChildType:
public function buildForm(FormBuilderInterface $builder, array $options)
{
if ($options['my_custom_option']) {
$builder->add('my_custom_field', 'textarea'));
}
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
...
'my_custom_option' => false
));
}
このフォームのmy_custom_option
値のみを変更するにはどうすればよいですか?SuperType
もちろん、コンストラクターを介してこのオプションを渡そうとしたことは機能しません。