如何设计Symfony2表单原型
我有一份Symfony2格式的表格集。我需要用一些特定的div结构来设置这些表单的样式,如下所示:如何设计Symfony2表单原型,symfony,symfony-forms,Symfony,Symfony Forms,我有一份Symfony2格式的表格集。我需要用一些特定的div结构来设置这些表单的样式,如下所示: <div class="block" style="clear: both;"> {{ form_row(form.name) }} {{ form_row(form.address) }} </div> <div class="block"> {{ form_row(form.website) }} {{ form_row(form.email
<div class="block" style="clear: both;">
{{ form_row(form.name) }}
{{ form_row(form.address) }}
</div>
<div class="block">
{{ form_row(form.website) }}
{{ form_row(form.email) }}
</div>
<div>
<div>
{{ form_row(form.text1) }}
</div>
</div>
{{form_row(form.name)}}
{{form_行(form.address)}
{{form_row(form.website)}
{{form_row(form.email)}
{{form_row(form.text1)}
如您所见,该结构是不规则的,我不知道如何在{%block collection\u widget%}中的{%for row in rows%}循环中设置它的样式。你知道我如何设计/构建表单原型,使添加了javascript的表单看起来与我想要的一模一样吗?你可以使用一个简单的for循环来实现,而无需扩展{%block collection\u widget%}:
{% for counter in form.MyCollection %}
<div class="block" style="clear: both;">
{{ form_row(form.MyCollection[loop.index0].name) }}
{{ form_row(form.MyCollection[loop.index0].address) }}
</div>
<div class="block">
{{ form_row(form.MyCollection[loop.index0].website) }}
{{ form_row(form.MyCollection[loop.index0].email) }}
</div>
<div>
<div>
{{ form_row(form.MyCollection[loop.index0].text1) }}
</div>
</div>
{% endfor %}
{form.MyCollection%中计数器的%
{{form_行(form.MyCollection[loop.index0].name)}
{{form_行(form.MyCollection[loop.index0].address)}
{{form_行(form.MyCollection[loop.index0].website)}
{{form_行(form.MyCollection[loop.index0].email)}
{{form_行(form.MyCollection[loop.index0].text1)}
{%endfor%}
我发现最好的方法是为表单使用单独的细枝模板,然后将表单/原型传递到类似的地方
_form.html.twig
{{form_row(form.name)}}
{{form_行(form.address)}
{{form_row(form.website)}
{{form_row(form.email)}
{{form_row(form.text1)}
update.html.twig
{form.items%%中的项的%s}
- {{include(''u form.html.twig',{'form':item}}}
{%endfor%}
这将允许您将表单项目原型传递到用于实际表单项目的同一模板中,这意味着当情况发生变化时,您只需更新一个模板。是您发布表单原型内容所希望的HTML吗?或多或少,但是。这只是我想在原型中使用的代码的一部分。为什么要使用loop.index[0]?还有,我应该把这个代码放在哪里?好的,我试过了,明白了。无需更多解释:)
<div class="block" style="clear: both;">
{{ form_row(form.name) }}
{{ form_row(form.address) }}
</div>
<div class="block">
{{ form_row(form.website) }}
{{ form_row(form.email) }}
</div>
<div>
<div>
{{ form_row(form.text1) }}
</div>
</div>
<ul data-prototype="{{ include('_form.html.twig',
{'form': form.items.vars.prototype })|e }}">
{% for item in form.items %}
<li>{{ include('_form.html.twig', {'form': item }) }}</li>
{% endfor %}
</ul>