2011-11-17 75 views
0

這個§ of the Symfony2 documentation顯示了一個非常棒的技術來定製一個單獨的領域。我使用了很多,但有一個特殊Type爲此,我有一個很難做的定製:在CollectionType()定製集合本身是很容易的,你可以做這樣的事情:如何自定義一個CollectionType()項目?

{% block _mynamespace_mybundle_mytype_mycollectionfield_row %} 
{% if prototype is defined %} 
    {% set attr = attr|merge({'data-prototype': form_widget(prototype) }) %} 
{% endif %} 
{% spaceless %} 
    <ul {{ block('widget_container_attributes') }}> 
     {% spaceless %} 
      {{ form_errors(form) }} 
      {% for child in form %} 
      <li> 
       {{form_widget(child)}} 
      </li> 
      {% endfor %} 
     {% endspaceless %} 
     {{ form_rest(form) }} 
    </ul> 
{% endspaceless %} 
{% endblock %} 

但是,您如何定製集合的每個元素?你怎麼能使用Twig來自定義data-prototypedata-prototype是一個特殊的屬性,用於添加js的新項目)?

我試圖做這樣的事情(爲data-prototype):

{% block _mynamespace_mybundle_mytype_mycollectionfield_$$name$$_row %} 
customization ok! 
{% endblock %} 

但我得到的錯誤,因爲我不知道如何逃脫$

關於項目,我試過很多東西:

{% block _mynamespace_mybundle_mytype_mycollectionfield_item_subfield_row %} 
customization ok! 
{% endblock %} 

{% block _mynamespace_mybundle_mytype_mycollectionfield_element_subfield_row %} 
customization ok! 
{% endblock %} 

他們都沒有工作。

+0

使用Twig自定義數據原型的含義是什麼? –

+0

我更新了我的答案 – greg0ire

回答

0

我在symfony的bug跟蹤器中問過這個問題,似乎沒有解決方案,但是一個很好的解決方法是爲每個想要自定義的子字段創建一個自定義類型。請參閱this issue

相關問題