【发布时间】:2016-07-29 12:11:41
【问题描述】:
我正在尝试使用 {% use %} 语法从基本模板中的子模板导入块,如http://twig.sensiolabs.org/doc/tags/use.html 中所述,但我遇到了一些问题,所以我想知道我在做什么不见了。
我有以下文件
#base.html.twig
<!DOCTYPE html>
<html>
{% use ':admin/page:body.html.twig' %}
</html>
#admin/page/body.html.twig
{% block contentBody %}
<body>
<p>Test Body</p>
</body>
{% endblock %}
最后
#default/index.html.twig
{% extends base.html.twig %}
{% block contentBody %}
<body>
<p>Test ContentBody</p>
</body>
{% endblock %}
据我了解,根据文档,前两个文件几乎就像我声明一个文件一样
#base.html.twig
<!DOCTYPE html>
<html>
{% block contentBody %}
<body>
<p>Test Body</p>
</body>
{% endblock %}
</html>
我的控制器呈现默认/index.html.twig
将前 3 个文件一起使用会产生一个空白页面,尽管我认为它应该呈现“Test ContentBody”
如果我用最后一个 sn-p 替换 base.html.twig 内容,它会正常工作并呈现“Test ContentBody”
如果我将 use 命令替换为 include 它会按预期产生“测试正文”
如果有人可以向我解释我做错了什么,或者引导我朝着正确的方向了解我在文档中遗漏的内容,我将不胜感激。在此先感谢
PS:我也尝试在 admin/page/body.html.twig 中声明该块 像这样
#admin/page/body.html.twig
{% block contentBody %}{% endblock %}
如果它因为文档中的部分而中断,即当您“使用”模板时,它们不应该有正文,但它没有帮助。
【问题讨论】: