use*_*048 23 php forms symfony doctrine-orm
我有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)),
}
Run Code Online (Sandbox Code Playgroud)
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
));
}
Run Code Online (Sandbox Code Playgroud)
如何my_custom_option
仅为此SuperType
表单更改值?
当然,我尝试通过构造函数传递此选项不起作用.
Ahm*_*ani 35
您可以将一组选项传递给childType,如下所示:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('childrens', 'collection', array(
'entry_type' => new ChildType(),
'entry_options' => array(
'my_custom_option' => true,
),
// ...
}
Run Code Online (Sandbox Code Playgroud)
Geo*_*gij 12
在Symfony 3中,这称为entry_options.
$builder->add('childrens', CollectionType::class, array(
'entry_type' => ChildType::class,
'entry_options' => array(
'my_custom_option' => true
),
));
Run Code Online (Sandbox Code Playgroud)