我正在为我的表单创建表单类,但无法弄清楚如何“扩展”它们。
例如,我有一个CustomerType
表单类和一个EmailType
表单类。我可以EmailType
直接添加到我的CustomerType
$builder->add('emails', 'collection', array(
'type' => new EmailType(),
'allow_add' => true,
'by_reference' => false
));
但我更喜欢在控制器中执行此操作,以便我的CustomerType
表单类仅包含客户信息。我觉得这更加模块化和可重用,因为有时我希望我的用户能够只编辑Customer
详细信息,而其他人既可以编辑详细信息,也可以编辑与该客户关联的对象Customer
。Email
(例如,第一种情况是查看客户的工单,第二种情况是创建新客户)。
这可能吗?我在想一些事情
$form = $this->createForm(new CustomerType(), $customer);
$form->add('emails', 'collection', ...)
在我的控制器中。