2012-08-14 47 views
1

我使用下面的模板來延長特定部件最大功能嵌套延長枝模板時,索納塔管理

{% use 'SonataAdminBundle:Form:form_admin_fields.html.twig' %} 
{% form_theme form _self %} 
{% block textarea_widget %} 
    {% spaceless %} 
    <div class="textarea_widget"> 
    <textarea {{ block('widget_attributes') }}>{{ value|raw }} 
    </textarea> 
    </div> 
    {% endspaceless %} 
{% endblock textarea_widget %} 

的主要問題是,它達到最大功能嵌套。擴展模板時必須有一些無限遞歸。當我從擴展模板複製代碼一切正常。任何想法如何使這個工作?

回答

0

來修復這個錯誤,我需要創建應用程序/資源/ SonataAdmin /視圖/表form_admin_fields.html.twig文件,內容如下:

{% block textarea_widget %} 
    {% spaceless %} 
    <div class="textarea_widget"> 
     <textarea {{ block('widget_attributes') }}>{{ value|raw }} </textarea> 
    </div> 
    {% endspaceless %} 
    {% endblock %} 

所以沒有必要使用或擴展模板只是重新定義一些塊。

3

這可能是由xDebug引起的,您必須使用xdebug.max_nesting_level參數進行配置。默認是100,但我通常將其升級到1000以保持安靜。

在Debian上,它位於/etc/php5/conf.d/xdebug.ini

有關此參數的正式文檔:

xdebug.max_nesting_level類型:整數,默認值:100

控制保護機制對於無限遞歸保護。 此設置的值是腳本中止前允許的嵌套函數 的最大級別。

+1

你認爲增加限制是一個很好的解決方案?我測試過這個,1000還不夠,10000也可能。我不相信核心開發者會犯這樣的錯誤,所以它必須是與模板繼承相關的另一個問題 – 2012-08-14 17:18:19

+0

衆所周知,當使用模板化的重框架時,100太低。我將其更改爲1000,因爲Symfony2在早期版本中是bug,並且需要很高的測試價值。當然,如果你需要更多,似乎你有一個問題... – AlterPHP 2012-08-15 08:17:13