我正在创建一个表单,类似于:
$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);
......或者我应该以完全不同的方式做到这一点?提前感谢您的指示。
答案 0 :(得分:1)
您可以创建一个新类,该类拥有两个对象作为属性,并将此类的实例传递给此复合形式。