Php Symfony2嵌套表单:setter方法优先级/顺序
3个表单,一个表单嵌套在另一个表单中。Php Symfony2嵌套表单:setter方法优先级/顺序,php,forms,symfony,Php,Forms,Symfony,3个表单,一个表单嵌套在另一个表单中。 项目->表格->表格 我需要project::setHasForm(),然后是hasForm::setNameForm() 目前它的工作顺序相反,hasForm首先调用其setter。 是否可以先设置顶层(project::setHasForm first)使其工作 --计划 Class ProjectType extends AbstractType { public function buildForm(FormBuilderInterface
项目->表格->表格
我需要project::setHasForm(),然后是hasForm::setNameForm() 目前它的工作顺序相反,hasForm首先调用其setter。
是否可以先设置顶层(project::setHasForm first)使其工作 --计划
Class ProjectType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name')
->add('endDate')
->add('hasForm', HasForm::class)
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'namespace..\Project' //example
));
}
}
--hasForm
--形式
在我看来,这是不可能的。Symfony表单始终将父项设置为填充的childen.IMO这是不可能的。Symfony表单始终将父项设置为填充的子项。
Class HasForm extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('NameForm', NameForm::class)
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'namespace..\HasForm' //example
));
}
}
Class NameForm extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name')
->add('description')
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'namespace..\Form' //example
));
}
}