2015-05-04 22 views
2

我想爲不同的表單類型設置不同的form_row佈局。我在模板塊中找到名爲「choice_widget_collapsed」的塊,但它只顯示帶選項的選擇標籤。爲不同的表單類型自定義form_row

我找不到這個塊在哪裏使用。實際上,它似乎是呈現,而不是form_widget塊。我想有一個地方開關/如果結構檢查表單類型並呈現適當的塊,但我不知道在哪裏找到這個開關,或者不知道如何檢查form_row塊內的輸入類型。

我知道塊類型可以在form.vars.block_prefixes數組中找到,但是這個sux,因爲它的位置在將來可能會改變,因爲它已經是。

所以問題是:如何使form_row根據表單字段類型顯示不同的東西?

回答

1

你應該覆蓋你的主題中的普通塊。此塊應該像這樣工作:

{% block form_appropriate_block %} 
    {% spaceless %} 
     {% if form.vars.widget = 'myIntendedWidgetType' %} 
      [yourTemplate] 
     {% else %} 
      {{ parent() }} 
     {% endif %} 
    {% endspaceless %} 
{% endblock form_appropriate_block %} 

,然後在你的模板,激活使用您的主題:

{% form_theme form 'MyBundle:Form:formTheme.html.twig' %} 

這樣,在需要的時候你的表單主題僅使用,如果類型不是你想要的那個,它會回到正常的行爲。

+0

這不會工作,沒有這樣的變量form.type – Fisher

+0

編輯,現在我選擇正確的領域。 – Jean

相關問題