使用Symfony 4,我想知道是否有一种简单的方法来组织显示字段的布局。
目前,我将视图中的所有内容模板化(例如,具有2列):
<div class="row">
<div class="col-md-6">
{{ form_row(form.name) }}
</div>
<div class="col-md-6">
{{ form_row(form.company) }}
</div>
</div>
{{ form_rest(form) }}
但是,我不想这样做,我只想在我的视图中呈现整个表单,并在FormBuilder
中管理模板。我想写点像:
$builder
->add('<div class="row"><div class="col-md-6">', HtmlType::class)
->add('name', TextType::class, [
'label' => 'Nom'
])
->add('</div><div class="col-md-6">', HtmlType::class)
->add('company', TextType::class, [
'label' => 'Société cliente'
])
->add('</div></div>', HtmlType::class);
我看了一下文档,但效果很差,它显示了如何从现有字段中插入内容。
是否有创建此HtmlType的方法来处理简单的Html标签?还是更好的方法?
您应该可以执行类似的操作:
$builder->add('your_field', YourFieldClass::class, [
'attr' => ['class' => 'your css class'],
]);
最佳解决方案是创建自定义表单主题。参考文档为here。我还没有亲自创建自定义网格,但是我想您可以使用OptionResolver创建一些自定义类型选项,该选项将告诉您的模板如何组织字段,然后基于此您可以根据需要组织自定义表单主题。