2012-04-21 25 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