我是Symfony2的新手并尝试渲染表单。基础知识很清楚,但隐藏的表单字段存在问题。
我尝试在不同的表格单元格中渲染每个表单小部件。但是当使用for循环时,第一个单元格将填充_token小部件。但我喜欢用form_rest渲染隐藏的字段。
<table>
<tr>
{% for element in form %}
<td class="header">{{ form_widget(element) }} </td>
{% endfor %}
</tr>
</table>
我正在寻找的是像
<table>
<tr>
{% for element in form %}
{% if element.type != 'hidden' %}
<td class="header">{{ form_widget(element) }} </td>
{% endif %}
{% endfor %}
</tr>
</table>
任何人都可以帮助我吗?非常感谢。
答案 0 :(得分:4)
对于Symfony 2.0,您曾经这样做过:
{% if "hidden" not in element.vars.types %}
对于Symfony 2.1,您必须这样做:
{% if "hidden" not in element.vars.block_prefixes %}
我花了很长时间才解决这个问题,因为根本没有关于它的文档。我也很困惑为什么你不能这样做:
{% if "hidden" element.vars.type %}
我的意思是,这不是最明显的方式吗?
答案 1 :(得分:2)
请尝试以下代码
<table>
<tr>
{% for element in form %}
{% if not element.ishidden %}
<td class="header">{{ form_widget(element) }} </td>
{% endif %}
{% endfor %}
</tr>
</table>
希望这会对你有所帮助。 快乐的编码!!!
答案 2 :(得分:0)
在黑暗中拍摄一下,但也许你可以在if语句中使用标签?
类似{%if form_label(element)!=“hidden”%}?
答案 3 :(得分:0)
试试这个:
<table>
<tr>
{% for element in form %}
{% if "hidden" not in element.vars.types %}
<td class="header">{{ form_widget(element) }} </td>
{% endif %}
{% endfor %}
</tr>
</table>