symfony - 我可以使用 Twig 在循环中重复 Symfony 表单,还是必须手动构建它?
问题描述
我对 Symfony 和 Twig 完全陌生;就在昨天,我被扔进了一个使用它们的遗留项目。
我有一个由模板循环生成的列表,Orders
每个订单都有一个priority
从 1 到 5 的列表。
Select
我想向每个下拉列表添加一个下拉列表,Order
row
该下拉列表提交一个更新并刷新页面Order
的表单。priority
我的问题是,我可以将 Symfony 的 buildForm 与这个架构结合使用吗?现在我手动构建了以下表单。甚至有可能用 Twig 构建一系列像这样的相同形式吗?:
{% 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 - Low</option>
<option value="2" {% if order.currentBody.priority == 2 %} selected {% endif %}>2 - Normal</option>
<option value="3" {% if order.currentBody.priority == 3 %} selected {% endif %}>3 - High</option>
<option value="4" {% if order.currentBody.priority == 4 %} selected {% endif %}>4 - Critical</option>
<option value="5" {% if order.currentBody.priority == 5 %} selected {% endif %}>5 - No Priority</option>
</select>
<input name="order_id" value="{{order.serial}}" type="hidden" />
</div>
</form>
{% endfor %}
这是我所追求的图像。更改任何Order
行项目Order
的优先级会更改其优先级,然后刷新页面。
解决方案
您必须将它们添加到表单类型中。你不能在你的树枝模板中这样做。如果您使用 {{ form_row(form.select) }} 之类的内容渲染字段,它将被标记为已显示并且不会再次渲染,即使您再次调用 {{ form_row(form.select) }} 也是如此。
推荐阅读
- angular - 如何检查从父组件到角度嵌套子组件的验证?
- c# - 如何在网格上动态重新布局用户控件?
- c# - 如何在 ASP.NET Core 中基于 appsettings 有条件地使用授权
- python - 具有纬度和经度的数据集格式不正确 - 如何使用 python 正确格式化?
- angular - this.router.navigateByUrl 路由正常,但不显示 HTML 内容
- angular - 无法在我的 Angular 应用程序中下载 pdf
- r - 在 R Markdown 文件的 YAML 标头的参数中循环变量并为每个变量自动输出 PDF
- mxgraph - 如何将橙色菱形工具添加到自定义形状?
- r - 非正态数据 qcc() 的 R 能力分析
- python - 如何从python中的列表中删除某个值?