删除或自定义嵌入的表单标签

lux*_*ury 4 symfony-forms symfony

当我设置我的formtype文件时:

$builder->add( 'producer', new ProducerType() );
Run Code Online (Sandbox Code Playgroud)

它总是返回一个嵌入式表格的通用标题(标签),如"生产者",我该如何删除或自定义此标签?

更新:最新的Fosuserbundle已被删除这个恼人的标签

alt*_*aus 9

删除标签的正确(?)方法是将其设置为false.

$builder->add( 'producer', new ProducerType(), array( 'label' => false ));
Run Code Online (Sandbox Code Playgroud)

然后根本不会渲染标记.目前在文档中已经遗漏了某些内容,您可以通过查看默认的树枝形式样式(第3行)来重构此行为:

{% block form_label %}
{% spaceless %}
    {% if label is not sameas(false) %}
        {% if not compound %}
            {% set label_attr = label_attr|merge({'for': id}) %}
        {% endif %}
        {% if required %}
            {% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' required')|trim}) %}
        {% endif %}
        {% if label is empty %}
            {% set label = name|humanize %}
        {% endif %}
        <label{% for attrname, attrvalue in label_attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}>{{ label|trans({}, translation_domain) }}</label>
    {% endif %}
{% endspaceless %}
{% endblock form_label %}
Run Code Online (Sandbox Code Playgroud)

这些树枝样式也是表单定制的一个很好的开始.有关此主题的更多信息,请参阅此食谱条目.