2013-03-26 10 views
5

Próbuję dostosować form_label w szablonie, który już rozszerza jeden szablon.Jak dostosować blok form_label w szablonie formularza w Symfony2?

używam przykład w Symfony2 documentation:

{% use 'form_div_layout.html.twig' with form_label as base_form_label %} 

{% block form_label %} 
    {{ block('base_form_label') }} 

    {% if required %} 
     <span class="required" title="This field is required">*</span> 
    {% endif %} 
{% endblock %} 

ale zmiana nic!

Czy możesz mi pomóc?

+0

masz dodany '{% Formularz form_theme _self%} 'do twojego temlate? – Ziumin

+1

Znalazłem rozwiązanie, do którego dodałem blok block_label w innym szablonie fields.html.twig i nazwałem go za pomocą {% form_theme formularza z "MyBundle: Form: fields.html.twig"%} w moim bieżącym szablonie. Dzięki! –

+0

@ LucasM. Opublikuj swoją odpowiedź jako prawdziwy anwser '' 'Odpowiedz na twoje pytanie''' a nie jako komentarz lub twoje pytanie pozostanie bez odpowiedzi. – svassr

Odpowiedz

7

Oto moje rozwiązanie.

W szczycie mojej form.html.twig pliku:

{% form_theme form with 'MyBundle:Activity:Form/fields.html.twig' %} 

a teraz do fields.html.twig, I niestandardowych w form_label:

{% extends 'form_div_layout.html.twig' %} 

{% block form_label %} 
{% spaceless %} 
    {% if not compound %} 
     {% set label_attr = label_attr|merge({'for': id}) %} 
    {% endif %} 
    {% if required %} 
     {% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' required')|trim}) %} 
    {% endif %} 
    {% if label is empty %} 
     {% set label = name|humanize %} 
    {% endif %} 

    <label{% for attrname, attrvalue in label_attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}>{{ label|trans({}, translation_domain) }}{% if attr.note is defined %} <span style="font: 11px normal; font-family: arial;">({{ attr.note }})</span>{% endif %}</label> 
{% endspaceless %} 
{% endblock form_label %} 
Powiązane problemy