如何将视图加载到另一个视图 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视图文件gmap存储到redis以使视图显示更快?
我如何在控制器函数中加载目录作为视图:Codeigniter