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

Posted

技术标签:

【中文标题】如何将视图加载到另一个视图 codeigniter 2.1?【英文标题】:how to load view into another view codeigniter 2.1? 【发布时间】:2012-03-13 06:15:20 【问题描述】:

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

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

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

【问题讨论】:

【参考方案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);
    

    从视图“内部”加载视图:

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

【讨论】:

嗨,非常感谢,我正准备回答这个问题,但我的用户观点不允许我这样做...问题是第三个参数 FALSE,我不知道...谢谢 谢谢。 Null 是这种情况下最重要的参数。 方式1简单实用,无需任何库。谢谢。 如何将数组加载到第二个视图中,因此使用上面的示例 1 $this->load->view('menu',DATA_ARRAY, TRUE) @frobak 你明确地通过它们 $this->view('menu', compact('menu'));【参考方案2】:

创建辅助函数

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

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

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

【讨论】:

以上是关于如何将视图加载到另一个视图 codeigniter 2.1?的主要内容,如果未能解决你的问题,请参考以下文章

将变量从视图传递到视图 codeigniter

如何将codeigniter视图文件gmap存储到redis以使视图显示更快?

我如何在控制器函数中加载目录作为视图:Codeigniter

Codeigniter - 如何将 JSON 作为参数传递给视图 [重复]

使用 CodeIgniter 加载视图文件夹外的视图

如何将 xib 的子视图显示到另一个 xib 的表格单元加载中