Symfony2如何使用FormBuilder删除字段的标签

Mik*_*ail 2 symfony

$builder->add('body','text',array('label' => FALSE)//default label is displayed
$builder->add('body','text',array('label' => '')//default label is displayed
$builder->add('body','text',array('label' => 0)//default label is displayed
$builder->add('body','text',array('label' => ' ')//empty label is displayed
Run Code Online (Sandbox Code Playgroud)

但我不需要渲染label标签.我form_widget(form)在视图中使用,我不能使用a form_row(form.field1) ... form_row(form.field25)来显示表单.我想仅使用FormBuilder删除标签.这是可能的?

ins*_*ere 7

您可以使用自己的twig文件为您的字段扩展默认表单布局,如下所示:

<!-- import default layout from symfony -->  
{% use 'form_div_layout.html.twig' with field_label as base_field_label %}

<!-- overwrite the element you want to change (in this case default input-field -->
{% block field_row %}
    {% spaceless %}
        <div class="row">
            <!-- removing this line, you're nearly done -->
            {{ form_label(form) }}
            {{ form_widget(form) }}
        </div>
    {% endspaceless %}
{% endblock field_row %}
Run Code Online (Sandbox Code Playgroud)

然后在twig文件中设置这个新的表单主题,该文件呈现以下形式:

{% form_theme form 'VendorNameBundle:Folder:backend_fields.html.twig' %}
Run Code Online (Sandbox Code Playgroud)

这就是它.

如果您想知道什么是默认值,请查看存储库中的此文件:form_div_layout.html.twig

  • 在formbuilder标签设置为false,已经实现这一承诺:[选项不设置标签显示错误的标签(https://github.com/symfony/symfony/commit/36e455680549bfe9fa5b1282e95bb9b36f2220be#src/Symfony/Bridge /Twig/Resources/views/Form/form_div_layout.html.twig) (4认同)