将值从控制器传递到codeigniter中视图中的视图

时间:2011-09-13 18:41:33

标签: php codeigniter

有人可以建议我如何将值从控制器传递到模板中的另一个视图

下面是我的控制器

$this->load->model('list_model');
$data['lists']=$this->list_model->loadhome();
$data['body']='content';
$data['right']='right';
$this->load->view('template',$data);

下面是我的模板视图

$this->load->view('includes/header');
$this->load->view($body);
$this->load->view($right);
$this->load->view('includes/footer');

我想要做的是将$ data ['lists']从控制器传递到$ this-> load-> view($ body);

有人可以告诉我该怎么做?

3 个答案:

答案 0 :(得分:1)

尝试

 $this->load->view($body,$lists);

答案 1 :(得分:0)

我会按照以下方式做点什么:

$this->load->model('list_model');
$data['contentData']['lists']=$this->list_model->loadhome();
$data['body']='content';
$data['right']='right';
$this->load->view('template',$data);

您的模板视图:

$this->load->view('includes/header');
$this->load->view($body, $contentData);
$this->load->view($right);
$this->load->view('includes/footer');

或者,如果您只需传递一个变量(并且不想堆叠数组),这将有效:

$this->load->model('list_model');
$data['lists']=$this->list_model->loadhome();
$data['body']='content';
$data['right']='right';
$this->load->view('template',$data);

您的模板视图:

$this->load->view('includes/header');
$this->load->view($body, array('lists'=>$lists));
$this->load->view($right);
$this->load->view('includes/footer');

答案 2 :(得分:0)

您可以在控制器中渲染正文视图,然后将其传递给模板视图。

控制器:

$this->load->model('list_model');
$lists = $this->list_model->loadhome();
$data['body_view'] = $this->load->view('content', $lists);
$data['right'] = 'right';
$this->load->view('template', $data);

模板视图:

$this->load->view('includes/header');
echo $body_view;
$this->load->view($right);
$this->load->view('includes/footer');

http://codeigniter.com/forums/viewthread/88335/提供了更多信息。

就个人而言,我不会走这条路,只会从控制器中分别加载四个视图。你考虑过这样做吗?