2016-03-08 69 views
1

將Symfony2.3.​​4與Twig結合使用。如何使用symfony2中的樹枝繼承更改標籤模板

說我正嘗試添加,例如,一個冒號(:),如果需要,星號(*),以每場的每個標籤由Symfony2中的CRUD生成的一種形式。爲此,我使用樹枝模板來繼承Symfony2的主模板form_div_layout.html.twig

到目前爲止:

//config.yml 
twig: 
    form: 
     resources: 
     - ::my_form_layout.html.twig 

//my_form_layout.html.twig 
{% block form_label %} 
    {% spaceless %} 
     {% if label is not sameas(false) %} 
      ... 
      {% set asterisk = '<sup><i title="Campo obligatorio" 
      class="glyphicon-asterisk" style="color: red; font-size: 
      8px"></i></sup>' %} 
      <label {% for attrname, attrvalue in label_attr %} 
      {{ attrname }}="{{ attrvalue }}"{% endfor %}> 
      {{ label|trans({}, translation_domain) }}: {% if required %} 
      {{ asterisk|raw }} {% endif %} 
      </label> 
      ... 
     {% endif %} 
    {% endspaceless %} 
{% endblock form_label %} 

問題是這樣,當我渲染,例如,選擇一個人的性別,與選擇類型字段擴大需要設置爲TRUE,冒號(:),星號(*)旁邊出現的字性別的話以及。

我該如何製作父母和兩個孩子之間的模板差異,因此冒號和星號只出現在單詞性別之後。

Thanx

回答

3

這就是我做過類似的事情。修改「choice_widget_expanded」擋了一下在您的自定義窗體佈局:

// update this row: {{ form_label(child) }} 
{{ form_label(child, child, {'exclude_additions': 'true'}) }} 

並更新「form_label」來檢查這個值是否定義:

{{ label|trans({}, translation_domain) }}{% if exclude_additions is not defined %}: {% if required %} 
{{ asterisk|raw }} {% endif %} {% endif %} 
+0

在步驟1中的錯誤:**變量「 child_label「在第9行的:: my_form_layout.html.twig中不存在。以防萬一:「my_form_layout.html.twig」是我用來繼承的模板。 –

+0

** {{form_label(child,child,{'exclude_additions':'true'})}} **做到了,thanx。 –

+0

羅傑說 - 似乎我的第二個參數確實無效,我只是沒有枝條錯誤報告。在這種情況下,第二個參數似乎並不重要 - 只要你不給出任何字符串值 - 那麼null可能是一個更直觀的值(通過假設它可以工作 - 沒有實際檢查)。以任何方式更新我的答案到工作格式。 – ejuhjav

相關問題