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

时间:2012-06-25 03:15:35

标签: symfony symfony-forms

当我设置我的formtype文件时:

$builder->add( 'producer', new ProducerType() );

它总是给我一个嵌入式表格的通用标题(标签),比如“制作人”,我该如何删除或自定义这个标签?

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

4 个答案:

答案 0 :(得分:9)

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

$builder->add( 'producer', new ProducerType(), array( 'label' => false ));

然后根本不会渲染标记。虽然目前在documentation中已经遗漏了某些东西,但您可以通过查看默认树枝form styles(第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 %}

这些树枝样式也是表单自定义的一个很好的开始。有关此主题的更多信息,请参阅此cookbook entry

答案 1 :(得分:3)

您可以尝试添加标签作为选项,具体取决于ProductType继承的选项,这可能就足够了。

$builder->add('producer', new ProducerType(), array('label' => 'Some Label'));

答案 2 :(得分:0)

要获取空的嵌入表单标签,请尝试添加空(一个空格字符)标签属性

$builder->add( 'producer', new ProducerType(), array('label' => ' '))

结果如下:

<div id="producer">
  <div>
    <label class=" required"></label>
    <div id="mainEntityName_producer">
      <div>
        <label.../>
        <input.../>
      </div>
    </div>
  </div>
</div>

答案 3 :(得分:0)

为避免与formbuilder打架,您可以使用css禁用标签。

<style>
    table.record_properties td label {
        display: none;
    }
</style>

<form action="{{ path('equipment_update', { 'id': entity.id }) }}" method="post" {{ form_enctype(edit_form) }}>
    <table class="record_properties" style="text-align: left;width: 500px;">
        <tbody>

        <tr>
            <th>{% trans %}title{% endtrans %}</th>
            <td>&nbsp;</td>
            <td>{{ form_row(edit_form.title) }}</td>
        </tr>
...