Symfony2 - 将一个表单绑定到多个对象

时间:2013-04-02 16:10:20

标签: php symfony

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

$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);

......或者我应该以完全不同的方式做到这一点?提前感谢您的指示。

1 个答案:

答案 0 :(得分:1)

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