向字段添加"帮助"消息

Use*_*age 26 symfony-forms symfony

我试图在symfony2中的每个字段之后添加一些帮助消息.

我在官方文档中读到了一个解决方案:http://symfony.com/doc/current/cookbook/form/form_customization.html#adding-help-messages

但是这个解决方案毫无意义,因为我们需要手动创建所有表单.例如,很容易定义标签:$formBuilder->add('myfieldname', 'text', array('label'=>'some my field label'));但如何传递帮助信息?(换句话说,一些自定义变量)

Ale*_*her 23

没有其他扩展的另一种方法:

在表单构建器类中:

$builder->add('yourField',null, array('attr'=>array('help'=>'text help')))
Run Code Online (Sandbox Code Playgroud)

在您的表单模板重写:

{% block form_row %}
    {% spaceless %}
            {{ form_label(form) }}
                {{ form_widget(form) }}
                {% for attrname, attrvalue in attr %}
                    {% if attrname == 'help' %}
                        <span class="help-block">{{ attrvalue }}</span>
                    {% endif %}
                {% endfor %}
            {{ form_errors(form) }}
    {% endspaceless %}
{% endblock form_row %}
Run Code Online (Sandbox Code Playgroud)

  • 此解决方案将向输入字段添加属性"帮助",因此它并不理想.它会创建无效的html. (2认同)
  • @pulzarraider是对的.请改用"data-help"属性. (2认同)

Hen*_*kov 17

$formBuilder->add('myFieldName', 'text', array('help' => 'My Help Message'));但它认为您还需要添加一个扩展,将其添加为所有表单的默认选项:
https ://github.com/simplethings/SimpleThingsFormExtraBundle#helpextension
这使您能够直接从FormTypes编辑属性.

  • 该捆绑包被重构,链接不再起作用.现在就去:https://github.com/simplethings/SimpleThingsFormExtraBundle#helpextension (2认同)

10u*_*0us 5

从 symfony 4.1 开始你可以这样做:

$builder->add('email', null, [
    'help' => 'Make sure to add a valid email',
]);
Run Code Online (Sandbox Code Playgroud)

https://symfony.com/blog/new-in-symfony-4-1-form-field-help