2010-07-08 39 views

回答

12

主视图没有内置的框架。要获得类似的效果,您可以加载子视图并将其传递给主视图。

控制器:

class Items extends Controller 
{ 
    function show($id) 
    { 
     $item = $this->item_model->get_item($id); 

     // Load the subview 
     $content = $this->load->view('item/show', array('item' => $item), true); 

     // Pass to the master view 
     $this->load->view('master_view', array('content' => $content)); 
    } 
} 

母版视图:

<div id="header"> 
</div> 
<div id="content"> 
    <?php echo $content; ?> 
</div> 
<div id="footer"> 
</div> 

为了回答您的其他问题,我把所有的JavaScript脚本的和CSS目录中在我的项目的根。

+0

这正是我所期待的,非常感谢你:) – GerManson 2010-07-09 00:28:24

0

我不是太熟悉.NET或笨,但它似乎相同的功能可以通过明智地使用Views提供。该页上的第一句话是:

事实上,如果您需要此类层次结构,视图可以灵活地嵌入到其他视图(在其他视图等内)中。

这似乎正是一个MasterPage提供的。实际上,大多数PHP框架和模板系统都提供相同的功能。

在回答第二个问题时,您可能希望将脚本,样式和图像保存在Web根目录的单独文件夹中。我相信这些URL与index.php相关,因此将资源保留在那里会使它们更易于在视图中引用。另一种选择是看看Asset Helper

+0

现在我正在使用视图功能,但我想知道是否有什么能以更智能和简单的方式实际解决问题。 – GerManson 2010-07-08 04:00:20

+0

我承认我不知道MasterPages的第一件事情,必须查看它们。不过,从我读过的内容看来,每个内容页面都需要引用其母版页面,这似乎与在每个“内容”控制器中加载主视图不同。如我错了请纠正我。 – TNi 2010-07-08 04:15:46

+0

http://msdn.microsoft.com/en-us/library/wtxbf3hh.aspx – GerManson 2010-07-08 04:17:38

2

我不确定他们有什么东西完全像母版页。 CodeIgniter更多的是一个MVC框架,并使用视图和控件来构建页面。如果你是CodeIgniter的新手,net.TutsPlus有一个真正的好的series of videos,深入了解如何使用不同的scenerios框架。看看“赶上”一节,看看视频列表。

希望这可以帮助您在项目中获得一些好运。

+0

感谢您的链接,我真的很感激它 – GerManson 2010-07-08 04:00:48