2013-11-02 116 views
1

我曾經使用過CodeIgniter。現在我開始學習Symfony2。我只是想知道,在CodeIgniter中,我可以從另一個視圖加載視圖。就像,我可以從index.php加載menu.php。這是我以前怎麼做的 -如何從視圖加載視圖?

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

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

回答

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

+0

非常感謝你。這只是我想要的。祝福你。 –