树枝模板中的递归宏调用

时间:2018-04-25 09:08:47

标签: twig

将我的Silex安装升级到版本2.x之后,我之前编写的宏不起作用。

{% macro render_map(data) %}
    /**
     * Do some stuff
    */
   {{ __self.render_map(argument) }} 
{% endmacro %}
经过一番研究后,我发现" __ self"运营商已被弃用,我尝试了这个解决方案:

{% import _self as macros %}
{% macro render_map(data) %}
   /**
    * Do some stuff
   */
  {{ macros.render_map(argument) }}
{% endmacro %}

有没有人能解决我的问题?

1 个答案:

答案 0 :(得分:1)

来自docs

  

当你想在同一个文件中的另一个宏中使用宏时,你   需要在本地导入:...

所以:

{% macro render_map(data) %}
  {% import _self as macros %}

  // ...

  {{ macros.render_map(argument) }}
{% endmacro %}

演示:https://twigfiddle.com/jtfo4h