如何从视图加载视图?

时间:2013-11-02 17:57:04

标签: php codeigniter symfony view twig

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

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

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

1 个答案:

答案 0 :(得分:2)

根据您尝试完成的任务,有几种不同的方法可以做到。

如果要渲染控制器的响应,可以在树枝模板中执行此操作。

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

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

您还可以使用include仅将树枝模板渲染为嵌入视图:

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

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

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