2012-06-25 29 views
4

当我建立了我的formtype文件是这样的:删除或自定义嵌入式表单标签

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

,它总是返回我总标题(标签)为嵌入式形式,如“生产者”,我怎么能删除或自定义此标签?

UPDATE:最新Fosuserbundle已被删除此恼火拉布勒

回答

3

你可以尝试添加一个标签作为一个选项,这取决于选项ProductType为继承,这可能是不够的。

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

谢谢,我知道了,怎么样删除它或添加一些装饰器呢?像

luxury

+1

还有'label_render',你可以设置为false。任何比这更先进的事情,你需要开始修改枝条模板 – MDrollette

+1

没有工作,没有这样的选择,我使用的版本2.1。* – luxury

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> 
+0

渲染空标签是不一样的,完全避免它们。 ;-) – althaus

+0

在当天的晚些时候,但由于这真是丑陋而不好。 – RichieHH

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> 
... 
9

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

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

然后标签将不会被渲染。 Altough它以某种方式在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

+0

在我的情况下,整个嵌入式表单的'label'出现在$ view ['form'] - > end($ form)'后面。但是当我尝试在FormBuilder中传递'array('label'=> false)'时,它就消失了。谢谢! +1 – sergekv

+1

在Google上搜索在SO上搜索我自己的答案...总是一种享受。 :d – althaus