2012-11-30 52 views
-1

我有一个用mvc Codeigniter编写的网站。我希望在特定位置的视图中调用另一个视图,因为例如菜单在许多页面中重复,并且对于所有视图都是相同的。包含视图其他视图的最佳方式

在我的控制器我有写:

public function home() 
    { 
     $data['menu_function'] = $this->load->view('backend/include/menu_function_view'); 
     $data['menu'] = $this->load->view('backend/include/menu_view'); 
     $this->load->view('backend/include/header_view_logged'); 
     $this->load->view('backend/home_view',$data); 
     $this->load->view('backend/include/footer_view'); 
    } 

,然后进入我home_view

<?php 
echo($menu_function); 
?> 
<div id="page"> 
    <?php 
    echo($menu); 
    ?> 
    <div id="content"> 
.... 

的问题是,$菜单里面的内容超出表单页面。我已经看到,在萤火虫i将HTML是这样的:而不是

<div id="menu"> 
... 
</div> 
    <div id="page"> 
    ... 
    </div> 

<div id="page"> 
    <div id="menu"> 
     ... 
    </div> 
    </div> 

我怎样才能解决呢?

回答

1

不知道这是否是最好的方法,但通常我用它来创建加载视图的模板文件。这里的基本思想是:

在文件夹视图

我创建文件的template.php包含:

$this->load->view('includes/header'); 
$this->load->view($main_content); 
$this->load->view('includes/footer'); 

我再建立文件夹视图/包括其中包含:

文件header.php and footer.php

在控制器我打电话:

$data['main_content'] = 'user/dashboard'; 
$this->load->view('template', $data); 

编辑:菜单有问题m

如何将$ menu_config这样的数据传递给您的页眉或视图模板?

的header.php

<html> 
<head> 
    <title>$title</title> 
</head> 
<body> 

<?php 
    if($menu_position == 'top1') { 
     $this->load->view($menu); 
    } 
?> 

在控制器:

$data['main_content'] = 'user/dashboard'; 
$data['menu'] = 'top_menu'; 
$data['menu_position'] = 'top1'; 
$this->load->view('template', $data); 
+0

并且是我如何与页眉和页脚这样做,但如果菜单是在一个特定的部分,我想将它插入一个特定的div –

+0

我的编辑答案如何? – SubRed

+0

这是一个想法,因为使用$ this-> load-> view($ menu);我可以创建一个像“include”一样的功能,并且工作正常 –

相关问题