为什么我的变量存在于块中而不存在于另一个块中?

时间:2016-10-18 09:10:07

标签: php symfony twig

我有一个带有变量'category'的模板。

在某些时候,我将此变量发送到嵌入式模板,如下所示:

{% embed "AtgpTrackerBundle:Ticket:/_list.html.twig" with {"table": table, "category": category} %}

此_list模板从defaultTable模板扩展:

{% extends "AtgpTrackerBundle::Table/_defaultTable.html.twig" %}

具有一些块:

<thead>
    {% block tableHead %}
        <tr>
            //some code
        </tr>
    {% endblock tableHead %}
</thead>    
<tbody id="{{ table.bodyId }}">
    {% block tableBody %}
        //some code
    {% endblock tableBody %}
</tbody>

所以,在_list模板中,我使用'category'变量覆盖了一些块。

当我在tableHead块中使用类别时,一切正常。当我在tableBody中使用它时,我有“变量类别不存在”的异常。

触发我的是,当我尝试在tableBody块中转储类别时,它实际显示了!但我仍然有错误,指出我编写转储的行。

编辑以使我的问题更清楚:例如,如果我尝试覆盖上面的块,就像那样:

{% block tableHead %}
    {{dump(category)}}
    {{category}}
{% endblock %}

{% block tableBody %}
    {{dump(category)}}
    {{category}}  
{% endblock %}

两个转储工作正常,但第二个发送异常“变量类别不存在”并且后面的行未被处理。我似乎只是不能使用tableBody块中的类别。

我无法弄清楚如何解释这种行为,这对我来说似乎很奇怪......

0 个答案:

没有答案