1

我是 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>

任何人都可以帮助我吗?非常感谢。

4

4 回答 4

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 %}

我的意思是,这不是最明显的方式吗?

于 2012-12-15T13:03:58.657 回答
2

试试下面的代码

<table>
  <tr>
    {% for element in form %}
      {% if not element.ishidden %} 
        <td class="header">{{ form_widget(element) }} </td>
      {% endif %}
    {% endfor %}
  </tr>
</table>

希望这对您有所帮助。快乐编码!!!

于 2012-04-21T14:23:45.330 回答
0

有点摸不着头脑,但也许你可以在 if 语句中使用标签?

有点像 {% if form_label(element) != "hidden" %}?

于 2012-04-21T11:38:43.937 回答
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>
于 2012-04-21T16:01:21.633 回答