我一直在使用CI,我在CI的网站上看到你可以加载一个视图作为你发送到“主”视图的数据的可变部分,因此,根据网站(说很多东西,许多人不像他们说的那样... ej pagination和其他人)我做了类似的事情
$data['menu'] = $this->load->view('menu');
$this->load->view ('home',data);
这样做的结果是我得到了网站顶部菜单的回声(在开始我的身体和所有之前)和应该在哪里什么都没有,就好像是在所有东西之前打印的......我不知道老实说这个问题,之前有没有人遇到过同样的问题?
答案 0 :(得分:68)
两种方法:
提前加载(就像你正在做的那样)并传递到另一个视图
<?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';
答案 1 :(得分:7)
创建辅助函数
function loadView($view,$data = null){
$CI = get_instance();
return $CI->load->view($view,$data);
}
在控制器中加载帮助程序,然后使用视图中的函数加载另一个函数。
<?php
...
echo loadView('secondView',$data); // $data array
...
?>