2013-03-26 6 views
5

私はすでに1つのテンプレートを拡張するテンプレートでform_labelをカスタマイズしようとしています。symfony2でフォームテンプレートのform_labelブロックをカスタマイズする方法は?

私は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 %} 

何も変化が!

私を助けることができますか?

+0

あなたは '{%のform_themeフォームを追加しました_self%} 'をあなたの気まぐれに捧げますか? – Ziumin

+1

他のテンプレートfields.html.twigにform_labelブロックを追加した解決策が見つかりました。私は現在のテンプレートに「MyBundle:Form:fields.html.twig '%」というフォームを{%form_themeフォームで呼び出しました。ありがとう! @LucasM。 –

+0

。本当のアンサーとして答えを投稿してください。あなたの質問に答えてください。あなたの質問はまだ答えられていないように思われます。 – svassr

答えて

7

私の解決策です。私form.html.twigファイルの先頭で

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

、今fields.html.twigには、私は、カスタム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 %} 
関連する問題