2

我目前正在创建一个表单,类似于:

$myDto = // ... etc - I am not using Doctrine

$form = $this->createForm(new DtoType(), $myDto);
$form->bind($request);

这些值绑定到表单并最终分配给 $myDto。没关系。

我想在我的表单中为不同的对象添加几个额外的字段。

我可以创建一个包含它们的“复合”类型 - 我可以称它为CompositeFormType包含DtoType(原始表单)和ActionsType(新字段),有点像这里描述的http://symfony.com/doc/current/book/ forms.html#embedded-forms

如果这是最好的方法,那么一旦我创建了这个CompositeFormType,我将如何将值输入/输出表单?我会将什么传递给“createForm”?例如:

$myDto =   // ... etc
$actions = // ... etc

$form = $this->createForm(new CompositeFormType(), ???);

                  //                     What here? ^
                  //
                  // I want both 'actions' and 'myDto' to be populated by
                  // the child types? How?

$form->bind($request);

...还是我应该以完全不同的方式来做?提前感谢您的指点。

4

1 回答 1

1

您可以创建一个拥有两个对象作为属性的新类,并将此类的实例传递给此复合表单。

于 2013-04-02T16:17:14.700 回答