为sonata admin扩展twig模板时的最大函数嵌套

时间:2012-08-14 11:33:34

标签: symfony twig sonata-admin

我使用以下模板扩展特定小部件

{% 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 %}

主要问题是它达到了最大功能嵌套。扩展模板时必须有一些无限递归。当我从扩展模板复制代码时,一切正常。知道如何使这个工作吗?

2 个答案:

答案 0 :(得分:3)

这可能是由xDebug引起的,您必须使用xdebug.max_nesting_level参数进行配置。默认值为100但我通常将其升级到1000以保持安静。

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

关于此参数的官方文档:

  

xdebug.max_nesting_level类型:整数,默认值:100

     

控制无限递归保护的保护机制。   此设置的值是嵌套函数的最大级别   在脚本中止之前允许的。

答案 1 :(得分:0)

修复此错误我需要在app / Resources / SonataAdmin / views / Form中创建form_admin_fields.html.twig文件,其中包含以下内容:

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

因此没有必要使用或扩展模板只需重新定义一些块。