【发布时间】:2017-06-27 17:57:58
【问题描述】:
在 Symfony 中使用 Forms 组件时,有没有办法重用该组件或表单的一部分,即 CRUD 的 “视图”“读取”部分。
我创建了一个表单类型(为了这个问题的目的而变得简单):
class CustomerType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class, array('label' => 'Customer Surname'))
->add('submit', SubmitType::class, array('label' => 'Create'))
;
}
}
对于“编辑”部分,很简单:
{{ form_start(form) }}
{{ form_row(form.name) }}
{{ form_end(form) }}
并传递'form' => $form->createForm() 进行渲染。
这将从类型定义中生成标签和所有内容。
但是,当涉及到 view 阅读时,似乎我必须这样做:
<span>Customer Surname</span> {{ data.name }}
并将'data' => $customer 对象传递给渲染器。
有什么方法可以获取表单类型的“标签”部分并在创建 “视图”“读取”模板时使用它,所以当我更新标签时它会在两个 “view”“read”和“update”部分?
表单似乎非常有用,尤其是具有数据转换之类的功能,但在“更新”和 “视图”“读取”之间似乎有点重复代码。
【问题讨论】: