2015-02-23 66 views
0

我做了一個自定義窗體類型與此相關的樹枝模板提交塊。Symfony2的樹枝覆蓋下的自定義塊

我試過把block submit放在這個塊內,但是這樣任何提交塊都被覆蓋(即使它們不是date_filter_widget)。另一種方法是手動創建提交按鈕(並傳遞屬性),但這樣我並不真正覆蓋表單的提交按鈕(所以我最終會遇到其他問題)。

我也見過一個解決方案,建議在block submit中檢查一下if/else是否匹配我的自定義類型名稱,但它看起來有點像一個黑客而不是正確的覆蓋。

回答

0

在此塊中,我添加{{ block('date_submit_widget') }}

然後做了一個自定義提交塊,如:

{%- block date_submit_widget -%} 
{%- set type = type|default('submit') -%} 
{% set attr = attr|merge({class: (attr.class|default('') ~ ' btn btn-primary')|trim}) %} 
<span class="input-group-btn"> 
    <button type="{{ type|default('button') }}" name="{{full_name}}_filter" {{ block('button_attributes') }}> 
     <span class="glyphicon glyphicon-filter"></span> 
    </button> 
</span> 
{%- endblock date_submit_widget -%} 

我錯過了最重要的部分是,<button>需要name屬性,它不應該留在其他輸入字段的相同陣列中,否則驗證將失敗