Symfony2表单生成器 - 删除标签,使其占位符

Jos*_* Wa 40 php symfony

我正在玩Symfony的表单构建器,我找不到不显示标签的方法.此外,我有兴趣为每个输入框设置一个占位符.这可能吗?我研究了一下,一无所获.

我的表格:

<form action="{{ path('searchPeople') }}" method="post" class="form-inline">
    {{ form_errors(form) }}

    {{ form_row(form.first_name) }}
    {{ form_row(form.last_name) }}

    {{ form_rest(form) }}

    <br />
    <button type="submit" class="btn btn-primary" /><i class="icon-search"></i>Search</button>
</form>
Run Code Online (Sandbox Code Playgroud)

编辑:解决了! 以下所有解决方案都有所帮助,但我给出了主要有用评论的答案.我感谢所有的帮助.对于其他遇到此问题的人来说,这是我最后的工作代码:

<form action="{{ path('searchPeople') }}" method="post" class="form-inline">
    {{ form_errors(form) }}

    {{ form_errors(form.first_name) }}
    {{ form_widget(form.first_name, {'attr': {'placeholder': 'First Name'} }) }}

    {{ form_errors(form.last_name) }}
    {{ form_widget(form.last_name, {'attr': {'placeholder': 'Last Name'} }) }}

    {{ form_rest(form) }}

    <br />
    <button type="submit" class="btn btn-primary" /><i class="icon-search icon-white"></i>Search</button>
</form>
Run Code Online (Sandbox Code Playgroud)

Tit*_*iti 60

我知道它已经回答了,但是如果您不想更改twig模板中的任何内容,可能会帮助那些正在为占位符寻找不同解决方案的人:

$builder->add(
    'name',
    'text', 
     array(
        'attr' => array(
             'placeholder' => 'Your name',
        ),
        'label' => false,
     )
);
Run Code Online (Sandbox Code Playgroud)


Fo.*_*Fo. 19

如果您使用form_rest输出字段,则必须在表单构建器中将字段的标签设置为false

$builder->add('first_name', 'text', array(
    'label' => false,
));
Run Code Online (Sandbox Code Playgroud)

如果单独输出字段,则可以在树枝模板中省略该字段的form_label,或将其设置为空字符串.

{{ form_label(form.first_name, '') }}
Run Code Online (Sandbox Code Playgroud)


Léo*_*ist 5

将标签转换为占位符

{% use 'form_div_layout.html.twig' with widget_attributes as base_widget_attributes %}
{% block widget_attributes %}
    {% set attr = {'placeholder': label|trans({}, translation_domain)} %}
    {{- block('base_widget_attributes') -}}
{% endblock widget_attributes %}
Run Code Online (Sandbox Code Playgroud)