symfony2 tekstfeltet definert etikett

stemmer
6

Jeg hadde et lite, men ubehagelig problem med symfony2 Feltet komponent. For eksempel vil jeg gjerne utgang rekke skjemafelt i kvist mal:

{% for field in form %}
    {{ form_label( field ) }}: {{ form_field( field ) }}
{% endfor %}

Og her er tekstfeltet konfigurasjon:

$field = new TextField( 'FieldName', array(
    'label' => 'MyCustomLabel',
) );

Men dessverre når motoren gjør denne produksjonen jeg få 'feltnavn' som etikett i stedet for 'MyCustomLabel'. Jeg ville ikke ha problemer hvis jeg sender ut skjemafeltene ikke for (i så fall kan jeg bare legge til en etikett i mal for hvert felt). Men skriptet ikke vet viss mengde og konfigurasjon av skjemafelt før henrettelsen. Så, jeg trenger å gjennomføre syklusen metode for felt gjengivelse. Og jeg ønsker også å bo i kvist notasjon ... Jeg vil være glad for en god råd :)

Publisert på 05/04/2011 klokken 11:33
kilden bruker
På andre språk...                            


6 svar

stemmer
7

Hvis du ønsker å endre etiketten, enn å følge trinnene. 1) Lag skjema klasse. 2)add('fieldName',null,array('label' => 'My New Label:'))

vennligst ikke endre feltnavn, men du kan spille med etikett innenfor en matrise.

Nyt!

Svarte 05/09/2011 kl. 15:29
kilden bruker

stemmer
3

Den enkleste måten å gjøre det på mal - passere andre argument til form_label

<div class="form-group">
    {{ form_label(form.email, 'Email:') }} <- this row
    {{ form_widget(form.email, {'attr': {'class': 'form-control'}}) }}
</div>
Svarte 22/12/2015 kl. 14:36
kilden bruker

stemmer
2

Et svar for Symfony 2.1 brukere som måtte komme over dette håper på et svar, er det nesten det er @rikinadhyapak svaret.

hvis du har utvidet FormType klasse av noen bunt som FOSUserBundle, i buildForm metode:

    $field = $builder->get('username');         // get the field
    $options = $field->getOptions();            // get the options
    $type = $field->getType()->getName();       // get the name of the type
    $options['label'] = "Login Name";           // change the label
    $builder->add('username', $type, $options); // replace the field
Svarte 05/02/2013 kl. 02:43
kilden bruker

Svarte 05/05/2011 kl. 08:53
kilden bruker

stemmer
0

For Symfony 2.3 kan du erstatte etiketten på hendelser som følgende:

$builder->addEventListener(FormEvents::POST_SET_DATA, function (FormEvent $event)
{
    $form = $event->getForm();
    $object = $event->getData();

    $field = $form->get('fieldname');
    $config = $field->getConfig();
    $options = $config->getOptions();
    $options['label'] = 'New label'; // change the label
    $form->add($field->getName(), $config->getType()->getName(), $options); // replace the field

});

men jeg ville unngå dette.

Svarte 10/04/2016 kl. 22:58
kilden bruker

stemmer
0

Jeg ville ærlig holde ut på å lære Symfony Form komponent for et par uker. Symfony utviklere gjør en stor-overhaling på Form API. Fra hva jeg forstår, er det meste av det gjort, og en pull forespørsel har blitt sendt til hovedlager .

Svarte 15/04/2011 kl. 04:39
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more