2013-01-18 78 views
1

我嘗試爲我的項目創建自定義表單的主題,我想渲染內標籤的所有複選框領域,如:如何使內部標籤輸入的Symfony2與枝條

<label><input type="checkbox" /><label> 

我發現,我必須要改變這種情況的choice_widget_expanded塊:

{% block choice_widget_expanded %} 
    {% spaceless %} 
     <div {{ block('widget_container_attributes') }}> 
     {% for child in form %} 
      {{ form_widget(child) }} 
      {{ form_label(child) }} 
     {% endfor %} 
     </div> 
    {% endspaceless %} 
{% endblock choice_widget_expanded %} 

問題是,當我form_label塊的內容複製到容器中,而不是調用form_label(孩子),我真的不明白是怎麼塊訪問傳遞的變量(當我調用函數時它是孩子)以及如何訪問變量調用form_widget功能在form_label塊:

{% block form_label %} 
    <label>{{ form_widget(?? what to put here??) }}</label> 
{% endblock form_label %} 

而且,如果我創建了一個塊用不同的名稱,如「form_label_extra」,並嘗試調用它,它拋出一個錯誤,因爲它不是一個註冊樹枝功能。

有誰知道這些變量是如何在窗體塊之間傳遞的,以及如何實現我的目標?

回答

4

我也做了同樣修改以下塊

{% block checkbox_widget %} 
{% spaceless %} 
<label class="button i_clear"> 
    <input type="checkbox" {{ block('widget_attributes') }} {% if value is defined %} value="{{ value }}"{% endif %} {% if checked %} checked="checked"{% endif %} /> 
    <span>{{ label }}</span> 
</label> 
{% endspaceless %} 
{% endblock checkbox_widget %} 

你仍然需要刪除原來的標籤,你可以用JavaScript修改它,用CSS隱藏或修改模板,以便它呈現有條件,無論最適合你。

這個問題也可能會有所幫助:Symfony2 - How to put label and input for checkboxes/radios in a same line?

+0

謝謝你,爲後期意見對不起:) – gabrielthorn

相關問題