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

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

4

2 回答 2

3

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

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

关于这个参数的官方文档:

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

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

于 2012-08-14T14:33:36.667 回答
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 %}

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

于 2012-08-21T12:46:21.620 回答