Подтвердить что ты не робот

Добавление сообщений "help" в поля

Я пытаюсь добавить некоторые вспомогательные сообщения после каждого поля в форме в symfony2.

Я прочитал об одном решении в официальных документах: http://symfony.com/doc/current/cookbook/form/form_customization.html#adding-help-messages

Но это решение имеет мало смысла, потому что нам нужно создать всю форму вручную. Например, легко определить метку: $formBuilder->add('myfieldname', 'text', array('label'=>'some my field label')); Но как передавать справочные сообщения? (Другими словами, некоторые пользовательские переменные)

4b9b3361

Ответ 1

$formBuilder->add('myFieldName', 'text', array('help' => 'My Help Message')); Но он думает, что вам также нужно добавить расширение, которое добавляет это как параметр по умолчанию для всех форм:
https://github.com/simplethings/SimpleThingsFormExtraBundle#helpextension
Это позволяет редактировать атрибуты непосредственно из FormTypes.

Ответ 2

Другой метод без другого расширения:

В вашем классе строителя формы:

$builder->add('yourField',null, array('attr'=>array('help'=>'text help')))

В вашем шаблоне шаблона переписать:

{% 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 %}

Ответ 3

Вы можете использовать решение в официальных документах, как описано.

Но работа еще не завершена. Вам необходимо создать расширение типа формы на основе этой статьи: http://symfony.com/doc/current/cookbook/form/create_form_type_extension.html

После завершения создания расширения типа формы вы можете добавить такие сообщения справки:

$form = $this->createFormBuilder()
          ->add('name', 'text', array(
                'help' => 'this is a help message to user',
         ))

Я думаю, что это родное лучшее решение. Кроме того, я рекомендую прочитать эту замечательную статью, в которой показано, как включить и установить параметр справки в формах symfony2: http://toni.uebernickel.info/2012/11/03/how-to-extend-form-fields-in-symfony2.1.html

Ответ 4

Если вы используете Bootstrap для своего проекта, вы можете воспользоваться некоторыми помощниками формы, предоставленными пакетом Mopa Bootstrap Bundle.

Демо: http://bootstrap.mohrenweiserpartner.de/mopa/bootstrap/forms/help_texts

GitHub: https://github.com/phiamo/MopaBootstrapBundle

Пример:

<?php

$form = $this->get('form.factory')
        ->createNamedBuilder('form_name')
        ->setMethod('POST')
        ->add('testSelect', 'choice', [
            'choices' => ['val1' => 'Value 1', 'val2' => 'Value 2'],
            'required' => true,
            'help_block' => 'Here some help text!!!'
        ])
        ->add('Save', 'submit')
        ->getForm();

return $form->createView();