2012-09-03 65 views
4

我想覆蓋在樹枝中使用的基礎溫度。如何覆蓋「form_div_layout」基本模板?

我已經使用這個

twig: 
    form: 
     resources: 
      - 'form_div_layout.html.twig' 

,我已經從原來的位置的文件複製到 app/resources/views/Form/form_div_layout.html.twig但我仍無法看到模板渲染的變化。

基本上我只是想添加的類別在DIV框中生成

{% block form_widget_compound %} 
{% spaceless %} 
    <div class="MYCLASS" 
    {{ block('widget_container_attributes') }}> 
     {% if form.parent is empty %} 
      {{ form_errors(form) }} 
     {% endif %} 
     {{ block('form_rows') }} 
     {{ form_rest(form) }} 
    </div> 
{% endspaceless %} 
{% endblock form_widget_compound %} 

我需要做更多的改變?

回答

8

如果您只想定製一個字段,則不需要複製完整文件。這樣做:

如果你只是想只是一個模板做到這一點,它添加到您的模板:

{% form_theme form _self %} 

{% block form_widget_compound %} 
{% spaceless %} 
    <div class="MYCLASS" > 
    {{ block('widget_container_attributes') }}> 
     {% if form.parent is empty %} 
      {{ form_errors(form) }} 
     {% endif %} 
     {{ block('form_rows') }} 
     {{ form_rest(form) }} 
    </div> 
{% endspaceless %} 
{% endblock form_widget_compound %} 

如果你想在幾個模板自定義此,這樣做:創建一個模板文件這個代碼的包:

{# src/Acme/DemoBundle/Resources/views/Form/fields.html.twig #} 
{% block form_widget_compound %} 
{% spaceless %} 
    <div class="MYCLASS" > 
    {{ block('widget_container_attributes') }}> 
     {% if form.parent is empty %} 
      {{ form_errors(form) }} 
     {% endif %} 
     {{ block('form_rows') }} 
     {{ form_rest(form) }} 
    </div> 
{% endspaceless %} 
{% endblock form_widget_compound %} 

然後在你想使用這個自定義字段的模板,這樣做:

{% form_theme form 'AcmeDemoBundle:Form:fields.html.twig' %} 

如果你想要這個定製是在一個包的所有可用模板,添加到您的配置文件:

# app/config/config.yml 
twig: 
    form: 
     resources: 
      - 'AcmeDemoBundle:Form:fields.html.twig' 

如果你想這是適用於所有的包,這個文件複製到

app/Resources/AcmeDemoBundle/views/Form/fields.html.twig 
+0

我想對所有捆綁所有的模板做這個內容添加到了樹枝配置。有什麼辦法,我不需要更改個人模板 – user825904

+0

我編輯了我的答案 –

+0

我根據引導安裝程序創建了一個模板。它包含label_attr類,將其設置爲control-label。現在,我想要一些幫助工具提示行,所以我需要添加一個類。 formbuilder不會覆蓋模板。那麼,是否可以定義一個自定義行一個塊form_row_custom,然後讓formbuilder使用這個? – rolandow

1

做你在資源沒有文件夾複製嘗試只是form_div_layout.html.twig,然後在配置reffer以這種方式::: form_div_layout.html.twig

twig: 
    form: 
     resources: 
      - '::form_div_layout.html.twig' 

您不必複製全部。你可以只擴展它的一部分。

0

它在這裏,簡單明瞭。僅覆蓋特定塊整個應用程序範圍內必須使用與form_div_layout.html.twig不同的文件名,否則您將收到錯誤。如果您複製整個文件並進行更改,這不是問題。但是,如果您只想覆蓋某些塊,則可以這樣做:

創建文件app/Resources/views/forms.html.twig並粘貼到要自定義的塊中。文件名不重要,只要它是而不是form_div_layout.html.twig

下一頁在app/config/config.yml

# app/config/config.yml 
twig: 
    form: 
     resources: ["::forms.html.twig"]