2013-03-26 73 views
5

我想在已經擴展了一個模板的模板中自定義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 2013-03-26 21:10:25

+1

我發現解決方案我在其他模板fields.html.twig中添加了塊form_label,並且在我當前的模板中使用{%form_theme窗體與'MyBundle:Form:fields.html.twig'%}進行了調用。謝謝! – 2013-04-03 15:32:51

+0

@LucasM。將您的答案發布爲真正的答案'''回答您的問題'''而不是作爲評論,否則您的問題仍然無法解答。 – svassr 2013-05-03 18:37:34

回答

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