Aggiungere messaggi di aiuto per i campi

Sto cercando di aggiungere alcuni messaggi di aiuto dopo ogni campo nella forma in symfony2.

Ho letto su di una soluzione nella documentazione ufficiale : http://symfony.com/doc/current/cookbook/form/form_customization.html#adding-help-messages

Ma questa soluzione non ha molto senso, perché abbiamo bisogno di creare tutte le forme manualmente.
Per esempio, è facile definire etichetta: $formBuilder->add('myfieldname', 'text', array('label'=>'some my field label')); Ma come passare messaggi di aiuto? (In altre parole, alcune variabili personalizzate)



5 Replies
  1. 23

    Un altro metodo senza un’altra estensione :

    Nel form builder classe:

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

    Nel modello di modulo di riscrittura:

    {% 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 %}
    • Questa soluzione permetterà di aggiungere l’attributo di ‘aiuto’ per campo di input in modo che non è l’ideale. Crea codice html non valido.
    • è giusto. Utilizzare data-help attributo, invece.
  2. 3

    È possibile utilizzare la soluzione nella documentazione ufficiale come lo hai descritto.

    Ma l’opera non è ancora completa. Devi creare un Modulo Tipo di Estensione, in base a questo articolo: http://symfony.com/doc/current/cookbook/form/create_form_type_extension.html

    Dopo aver completato il Modulo Tipo di Estensione di creazione è possibile aggiungere Messaggi di Aiuto come questo:

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

    Penso che questo è un nativo soluzione migliore.
    Inoltre, vi consiglio di leggere questo ottimo articolo che mostra come abilitare e impostare l’opzione della guida in symfony2 forme:
    http://toni.uebernickel.info/2012/11/03/how-to-extend-form-fields-in-symfony2.1.html

    • Sono sicuro che la risposta è nel link, ma si potrebbe delineare la soluzione la documentazione e l’articolo?
  3. 2

    Un po ‘ fuori tema, ma ancora utile se hai intenzione di usare Bootstrap per il vostro progetto, allora si può approfittare di una qualche forma helper forniti dal Mopa Bootstrap Bundle.

    Demo: http://bootstrap.mohrenweiserpartner.de/mopa/bootstrap/forms/help_texts

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

    Esempio:

    <?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();

Lascia un commento