-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">
....

问题是 $menu 中的内容不在表单页面中。我在firebug中看到html是这样的:

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

代替:

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

我该如何解决?

4

1 回答 1

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);

编辑:菜单问题

将诸如 $menu_config 之类的数据传递给您的标题或视图模板怎么样。

头文件.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);
于 2012-11-30T14:15:17.143 回答