【问题标题】:Symfony2, a label Token appears when using form themesSymfony2,使用表单主题时出现标签Token
【发布时间】:2016-04-18 00:32:56
【问题描述】:

我正在使用 Symfony2.6 ,并且正在尝试自定义表单呈现。当我将 {{ form_rest(form) }} 放入 form 时,出现标签 Token 的问题。我怎样才能让它隐藏起来?

这是表单主题

{% extends 'form_div_layout.html.twig' %}


{% block form_widget_simple %}
    <div class="form-group">
        {{ form_label(form, null, {'label_attr': {'class': 'control-label'}}) }}

        {{ parent() }}
    </div>
{% endblock %}

当我删除块 {% block form_widget_simple %} 以测试给出的内容时,令牌标签变为隐藏。

编辑: 我也想知道更改简单的小部件块并在其中呈现标签是否正确。

【问题讨论】:

    标签: symfony twig


    【解决方案1】:

    您已更改不应呈现标签的简单小部件的块(默认情况下不会呈现)。如果你真的需要这样做,你可以检查type 变量并且不要为hidden 类型渲染标签。如下:

    {% block form_widget_simple %}
        <div class="form-group">
            {% if type != 'hidden' %}
                {{ form_label(form, null, {'label_attr': {'class': 'control-label'}}) }}
            {% endif %}
    
            {{ parent() }}
        </div>
    {% endblock %}
    

    【讨论】:

    • 你好,你能解释一下你的意思是什么(你已经改变了不应该呈现标签的简单小部件的块(默认情况下它不会)?如果简单小部件不应该呈现标签,那么在哪里呈现呢?
    • 如果您查看扩展 github.com/symfony/symfony/blob/master/src/Symfony/Bridge/Twig/… 的文件,您会发现一个 form_row 块。它呈现标签、小部件和错误。 form_widget 仅呈现输入。
    • 对不起,我试过你的解决方案,但这是错误 Variable "type" does not exist in form/fields.html.twig at line 46 ,我添加了这个块,它可以工作 {%- block hidden_row -%} &lt;div style="display:none"&gt; {{ form_widget(form) }} &lt;/div&gt; {%- endblock hidden_row -%}
    【解决方案2】:

    这很好用:

    {% extends 'form_div_layout.html.twig' %}
    //........
    {%- block hidden_row -%}
    <div style="display:none">
        {{ form_widget(form) }}
    </div>
    {%- endblock hidden_row -%}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多