如何将视图加载到另一个视图codeigniter 2.1?

时间:2012-02-22 21:02:04

标签: codeigniter view load

我一直在使用CI,我在CI的网站上看到你可以加载一个视图作为你发送到“主”视图的数据的可变部分,因此,根据网站(说很多东西,许多人不像他们说的那样... ej pagination和其他人)我做了类似的事情

$data['menu'] = $this->load->view('menu');
$this->load->view ('home',data);

这样做的结果是我得到了网站顶部菜单的回声(在开始我的身体和所有之前)和应该在哪里什么都没有,就好像是在所有东西之前打印的......我不知道老实说这个问题,之前有没有人遇到过同样的问题?

2 个答案:

答案 0 :(得分:68)

两种方法:

  1. 提前加载(就像你正在做的那样)并传递到另一个视图

    <?php
    // the "TRUE" argument tells it to return the content, rather than display it immediately
    $data['menu'] = $this->load->view('menu', NULL, TRUE);
    $this->load->view ('home', $data);
    
  2. 从视图中“加载”视图:

    <?php
    // put this in the controller
    $this->load->view('home');
    
    // put this in /application/views/home.php
    $this->view('menu');
    echo 'Other home content';
    

答案 1 :(得分:7)

创建辅助函数

function loadView($view,$data = null){
    $CI = get_instance();
    return $CI->load->view($view,$data);
}

在控制器中加载帮助程序,然后使用视图中的函数加载另一个函数。

<?php 
...
    echo loadView('secondView',$data); // $data array
...
?>