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 に答える