Symfony2 - 在通过树枝打印的表单中隐藏令牌标签

时间:2013-09-13 15:43:36

标签: forms symfony twig symfony-2.3

我是 Symfony2 的新手,我正在通过 twig 打印表单,如下所示:

{% for form_field in form %}
    {% block field_row %}
        <div class="">
            {{ form_label(form_field) }}
            <br>
            {# {{ form_errors(form_field) }} #}
            {{ form_widget(form_field) }}
            {{ form_row(form_field) }}
        </div>
    {% endblock field_row %}
{% endfor %}

它工作正常,但是我想完全隐藏令牌隐藏字段。 事实上,输入字段类型是“隐藏的”,但标签正确显示。 如何在没有令牌标签但是使用&lt; div&gt;的情况下打印该表单(和其他人)之间的标签?

3 个答案:

答案 0 :(得分:3)

我有同样的问题,然后通过这种方式解决,你可以尝试下面的代码:

{% block register_form_widget %}
{% spaceless %}
    {% for child in form %}
        <div class="form-group {% if form_errors(child) is not empty %}has-error{% endif %} ">

            {% if 'token' not in form_label(child) %}
                {{ form_label(child) }}
            {% endif %}

            {{ form_widget(child) }}
        </div>
    {% endfor %}
    {{ form_rest(form) }}
{% endspaceless %}
{% endblock register_form_widget %}

上面的代码将隐藏包含'token'字符串

的每个标签

答案 1 :(得分:1)

在表单定义上:

->add('fieldname', 'hidden', array('label' => false))

另外在你的树枝上只需要做:

{{ form_widget(form) }}

或者至少:

{% for form_field in form %}
    {{ form_row(form_field) }}
{% endfor %}

答案 2 :(得分:0)

我不确定这个解决方案,但您可以在添加标签之前添加if语句:

{% for form_field in form %}
{% block field_row %}
    <div class="">
         {% if form_label(form_field) != form_label(form_field._token) %}
        {{ form_label(form_field) }}
         {% endif %}
        <br>
        {# {{ form_errors(form_field) }} #}
        {{ form_widget(form_field) }}
    </div>
  {% endblock field_row %}
{% endfor %}