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

jpg*_*z18 25 load codeigniter view

我一直在使用CI,我在CI的网站上看到你可以加载一个视图作为你发送到"主"视图的数据的可变部分,所以,根据网站(说了很多东西,很多都是不像他们说... ej分页和其他)我做了这样的事情

$data['menu'] = $this->load->view('menu');
$this->load->view ('home',data);
Run Code Online (Sandbox Code Playgroud)

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

lan*_*ons 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);
    
    Run Code Online (Sandbox Code Playgroud)
  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';
    
    Run Code Online (Sandbox Code Playgroud)


小智 7

创建一个辅助函数

function loadView($view,$data = null){
    $CI = get_instance();
    return $CI->load->view($view,$data);
}
Run Code Online (Sandbox Code Playgroud)

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

<?php 
...
    echo loadView('secondView',$data); // $data array
...
?>
Run Code Online (Sandbox Code Playgroud)