Twig运行时错误:无法在字符串变量上调用方法("test")

tft*_*ftd 7 symfony twig

我有以下twig模板(代码在同一个文件中):

{% macro renderJob(fields) %}
    // renders the job UI block, but I've removed it for simplicity
    Hello world.
{% endmacro %}
{% block _jobs_widget %}
    <div id="jobsContainer">
        {% for fields in form.children %}
            {% dump fields %}
            {{ _self.renderJob(fields) }}
        {% endfor %}
    </div>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

出于某种原因,在升级到twig/twig = v2.1.0我收到以下错误后:

无法在字符串变量("@ AppBundle/Jobs/form/job.html.twig")上调用方法("renderJob").

我一直试图找出造成这种情况的原因而没有任何运气.这曾经工作得很好1.3.x.该fields变量包含正确的数据,但它似乎不能把它传递给renderJob宏或无法找到宏(这是一种奇怪的)?

Lau*_* W. 11

你试过以下吗?

{% import _self as renderJobMacro %}

{% macro renderJob(fields) %}
    // renders the job UI block, but I've removed it for simplicity
    Hello world.
{% endmacro %}

{% block _jobs_widget %}
    <div id="jobsContainer">
        {% for fields in form.children %}
            {{ renderJobMacro.renderJob(fields) }}
        {% endfor %}
    </div>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)