Twig - 包含模板中没有上下文的模板

时间:2017-05-25 12:15:12

标签: twig

我继承了一个使用Symfony2和Twig的应用程序,对我来说这是一个新事物,所以请随意指出我遗漏的明显事实。

进入一个问题,其中两个不同的其他模板中包含的相同模板无法包含第三个模板,具体取决于两个“调用”模板中的哪一个包含它。

换句话说, 两个主要视图模板:

smallpictures.html.twig
bigpictures.html.twig

都包含第三个模板:

picturegrid.html.twig

picturegrid 模板中,模板还有另一个包含:

importantstuff.html.twig

importantstuff 模板无法正常加载,具体取决于您是否正在查看 smallpictures.html.twig bigpictures.html.twig

smallpictures 中的include语句是这样的:

{{ include('MyBundle:SmallPictures:picturegrid.html.twig') }}

bigpictures 中的include语句是这样的:

{% include 'MyBundle:SmallPictures:picturegrid.html.twig' with {'param1': param1, 'param2': 'param2'} only %}

重要资料 picturegrid 中的include语句是这样的:

{% include 'partials/components/stuff/importantstuff.html.twig' %}

当使用 bigpictures 模板时,最后一次包含无法正常工作 - 它在网站上加载了空白内容。

我不认为include语句的语法差异在这里很重要,但根据Twig documentation,关键字only会删除对包含模板的上下文的访问权限。当我删除此关键字时, importantstuff 模板会被正确包含。<​​/ p>

问题 - 如果模板没有上下文,应该如何包含其他模板?文件夹结构如下所示:

app
-- Resources
---- MyBundle
------ views
-------- SmallPictures
-------- BigPictures
---- views
------- partials
--------- components
------------ stuff

0 个答案:

没有答案