Silex - 如何单独处理模板包含

Silex - How to process template includes separately

我有一个像这样的 Twig 基础模板:

{% include "./partials/navigation.html" %}

<!-- Main Wrapper -->
<div id="wrapper">
    {% block content %}{% endblock content %}
</div>

我还有一个路由控制器,它使用 twig 将响应内容输出到页面:

return template->render('path/to/teplate', args());

其中args[]数组是这个位需要的所有数据:(每页不同)

{% block content %}{% endblock content %}

但是我的侧边栏是通过菜单构建器单独构建的 class,现在它需要将构建菜单的结果渲染到我的模板并填充 。/partials/navigation .html.

对我来说一个简单的解决方案是将菜单生成器的结果附加到每个控制器的返回响应中(我可以使用基本控制器 class 来执行此操作,因为此菜单出现在每个页面上) .然而,这让人感觉不干净,就好像我每次都必须渲染相同的 header/footer 一样,我也必须将所有 3 个输出附加到响应中。 (也许这没关系?)

是否有更好的方法来呈现多个包含价值的内容,每个内容都需要自己的数据库查找和其他服务器端逻辑?

是的。它们被称为子请求。阅读 documentation here.