我曾经使用过CodeIgniter。现在我开始学习Symfony2。我只是想知道,在CodeIgniter中,我可以从另一个视图加载视图。就像,我可以从索引.php加载菜单.php。我以前是这样做的——
//in index.php
<?php $this->load->view('menu.php'); ?>
是否可以在Symfony2和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#including-other-templateshttp://twig.sensiolabs.org/doc/functions/include.html