2012-08-14 45 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