2012-04-21 23 views
1

我是Symfony2中的新手,並嘗試渲染表單。基本知識很清楚,但隱藏表單字段存在問題。如何識別Symfony2/Twig中的隱藏表單域

我嘗試在不同的表格單元格中呈現每個表單控件。但是當使用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> 

誰能幫助我嗎?非常感謝。

回答

2

試試這個下面的代碼

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

希望這有助於你。 快樂編碼!

0

有點在黑暗中拍攝,但也許你可以在if語句中使用標籤?

有點像{%if form_label(element)!=「hidden」%}?

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> 
4

爲symfony1.2 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 %} 

我的意思是,這不是最明顯的方式?

+0

如果您使用Sf2.1(現在是標準)。這是人們應該尋找的答案。謝謝邁克。 – JustinP 2013-02-22 16:23:47