1

我曾经使用 CodeIgniter。现在我开始学习 Symfony2。我只是想知道,在 CodeIgniter 中我可以从另一个视图加载一个视图。就像,我可以从 index.php 加载 menu.php。我以前是这样的——

//in index.php
<?php $this->load->view('menu.php'); ?>

是否可以在 Symfony2 和 Twig 中做同样的事情?

4

1 回答 1

2

根据您要完成的工作,您可以通过几种不同的方式来完成它。

如果要呈现控制器的响应,可以在 twig 模板中执行此操作。

{{ render(controller('AcmeArticleBundle:Article:recentArticles', {
        'max': 3
})) }}

在上面的示例中,传递的参数max将作为参数传递给您的控制器。然后控制器将负责返回一个响应,该响应将插入到调用它的视图中。

您还可以使用include仅将树枝模板呈现为嵌入式视图:

{% for article in articles %}
    {{ include(
        'AcmeArticleBundle:Article:articleDetails.html.twig',
        { 'article': article }
    ) }}
{% endfor %}

在上面的示例中article,将被传递到 twig 模板的上下文中,articleDetails.html.twig但不会传递给任何控制器。因此,这种方法非常适合在许多地方使用的重复前端代码,例如表格模板、列表、侧边栏等。

http://symfony.com/doc/current/book/templating.html#include-other-templates http://twig.sensiolabs.org/doc/functions/include.html

于 2013-11-02T19:55:53.417 回答