我可以与Twig循环重复Symfony表单吗,还是必须手动构建它?

时间:2018-09-14 05:07:39

标签: symfony symfony-2.1 formbuilder

我对Symfony和Twig完全陌生;就在昨天,我被投入使用它的旧项目中。

我有一个Orders由模板循环产生的列表,每个订单的1-5范围内都有一个priority

我想向每个Select Order添加一个下拉列表row,以提交更新Order的{​​{1}}的表单并刷新页面。

我的问题是,我可以将Symfony的buildForm与该体系结构结合使用吗?现在,我手动构建了以下表格。甚至可以用Twig建立一系列相同的形式吗?:

priority

这是我所追求的形象。更改任何{% for order in orders %} <form method="post" action="{{ path('change_priority') }}" style="margin: 0; padding: 0;"> <div class="form-group"> <select name="priority" style="width: 35px; height: 20px;" onchange="this.form.submit()"> <option value="1" {% if order.currentBody.priority == 1 %} selected {% endif %}>1&nbsp;&nbsp;- Low</option> <option value="2" {% if order.currentBody.priority == 2 %} selected {% endif %}>2&nbsp;&nbsp;- Normal</option> <option value="3" {% if order.currentBody.priority == 3 %} selected {% endif %}>3&nbsp;&nbsp;- High</option> <option value="4" {% if order.currentBody.priority == 4 %} selected {% endif %}>4&nbsp;&nbsp;- Critical</option> <option value="5" {% if order.currentBody.priority == 5 %} selected {% endif %}>5&nbsp;&nbsp;- No Priority</option> </select> <input name="order_id" value="{{order.serial}}" type="hidden" /> </div> </form> {% endfor %} 行项目的优先级都会更改Order的优先级,然后刷新页面。

enter image description here

1 个答案:

答案 0 :(得分:1)

您必须在表单类型中添加它们。 您无法在树枝模板中执行此操作。 如果使用{{form_row(form.select)}}之类的字段渲染字段,则即使您再次调用{{form_row(form.select)}},该字段也将被标记为已显示且不会再次渲染。