【发布时间】:2018-03-16 03:54:03
【问题描述】:
我一直在关注文档、教程和一些 youtube 视频,但我永远无法让块嵌套和“扩展”工作。除此之外,Timber 似乎工作正常。
在视图文件夹中,我有这两个文件:
base.twig
test.twig
在 base.twig
中{% block content %}
........
{% endblock %}
在 test.twig
中{% extends "base.twig" %}
{% block content %}
This is a test
{% endblock %}
从我一直关注的内容来看,代码是正确的,我应该得到“这是一个测试”的输出,对吗?但相反,我仍然得到“.....”。
----编辑----
好的,我发现了一些问题,在我的 php 文件中,我正在渲染 base.twig。这显然没有做任何事情来关联 test.twig。因此,当我渲染 test.twig 时,我得到了我正在寻找的行为。
但这并没有解释如何进行多块嵌套...我可以将多个文件嵌套在同一个块内 .. 但是 如果您有两个单独的块在同一个twig文件? 处理多块的方法是什么?我找不到关于那个或任何案例的文档。
【问题讨论】:
-
你调用
Timber::render()的地方的PHP文件是什么样子的? -
它看起来确实像
Timber::render( 'base.twig', $context );,我发现我必须渲染 test.twig 才能工作。但是我仍然不清楚如何在同一个树枝文件中操作多个块元素。我编辑了我的原始帖子。 -
多块嵌套是什么意思?你看过这个吗? twig.symfony.com/doc/2.x/tags/extends.html它回答你的问题了吗?
-
谢谢你的链接,我还没有看到它。这很有帮助,但我还不完全清楚。它声明“所以每次渲染只能调用一个扩展标签”。好的,但是在第一个代码示例中,同一树枝文件中同时存在
block head和block footer。所以我假设我可以有 2 个单独的树枝文件,这些文件为每个块扩展。但我想这是错误的,所以我只能有一个将扩展到这两个块元素的子树枝文件?事情就是这样处理的吗?