如何从视图加载视图?

Posted

技术标签:

【中文标题】如何从视图加载视图?【英文标题】:How to load a view from a view? 【发布时间】:2013-11-02 17:57:04 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

根据您要完成的任务,您可以采用几种不同的方法。

如果你想渲染控制器的响应,你可以在你的 twig 模板中进行。

 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

【讨论】:

非常感谢。这正是我想要的。祝福你。

以上是关于如何从视图加载视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取从 nib ios 加载的自定义视图的实际大小

如何快速从另一个视图控制器重新加载表格视图

如何从 xib 文件加载视图控制器?

如何将从笔尖加载的视图重建为新的帧大小

Interface Builder:如何从 nib 文件加载视图

每次将视图控制器压入堆栈时,如何从 appDelegate 重新加载视图控制器?