2013-06-21 66 views
0

根據輸入類型,是否可以在輸入的根div上應用特定的類?如何使用Symfony2設置窗口小部件類型的css類

例:

<div class="radio-input"> 
    <input... 
    .... 
</div> 

我嘗試過載 「fields.html.twig」 與此:

{% block form_row %} 
{% spaceless %} 
    {% set type = type|default('text') %} 
    <div class="{{ type }}-input"> 
     {{ form_label(form) }} 
     {{ form_errors(form) }} 
     {{ form_widget(form) }} 
    </div> 
{% endspaceless %} 
{% endblock form_row %} 

但 「類型」 總是等於 「文本」。

回答

2

不是一個特別好的解決方案,但它似乎block_prefixes傳遞到塊form_row。 Block_prefixes是表單字段類型的繼承順序的排列所謂的第一名稱的文本字段將有block_prefixes陣列,如:

block_prefixes = array("form","field","text","first_name")

這意味着你可能會得到最後一個數組元素,並使用第二那個:

{% block form_row %} 
{% spaceless %} 
    <div class="{{ (block_prefixes|slice((block_prefixes|length - 2),1))|first }}-input"> 
     {{ form_label(form) }} 
     {{ form_errors(form) }} 
     {{ form_widget(form) }} 
    </div> 
{% endspaceless %} 
{% endblock form_row %} 

我敢肯定,有比這更好的方式,雖然我只是沒有它介意。

P.S類型未定義這就是爲什麼它總是text你作爲你將它設置爲默認的文本

+0

這正是我想要的,謝謝! –

相關問題