Codeigniter:构建局部视图的最佳方式 [英] Codeigniter: Best way to structure partial views
本文介绍了Codeigniter:构建局部视图的最佳方式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
您将如何在 Codeigniter 中构建以下页面?
我想为每个部分创建单独的控制器
- 左导航
- 内容导航
- 登录名
- 排行榜
不包括内容部分(因为这会根据左侧导航中的链接和用作有点子菜单的内容导航而改变).所有其他部分保持大致相同
我想过这样做:
Class User_Profile 扩展控制器{函数索引(){$this->load_controller('Left_Nav');$this->load_controller('Content_Nav');$this->load_controller('Login_Name');$this->load_controller('排行榜', '董事会');$this->Left_Nav->index(array('highlight_selected_page' => 'blah'));$this->load('用户');$content_data = $this->User->get_profile_details();$this->view->load('content', $content_data);$this->Login_Name->index();$this->Board->index();}}
显然这个 load_controller
不存在,但是这个功能会很有用.每个部分的控制器从模型中获取所需的数据,然后通过$this->view->load()
在所有左侧导航链接(如新闻、用户、关于我们等)中使用此代码可能会令人头疼.但同样,并非每个导航链接都包含所有这些部分,因此我需要将这些部分作为部分视图"
谁能提出更好的方法?
解决方案
我不能保证这是最好的方法,但我创建了一个像这样的基本控制器:
class MY_Controller 扩展 CI_Controller {公共 $title = '';//模板将默认使用它来包含 default.csspublic $styles = array('default');函数 _output($content){//加载基本模板,输出内容可作为 $content$data['content'] = &$content;$this->load->view('base', $data);}}
名为base"的视图是一个模板(包含其他视图的视图):
<html xmlns="http://www.w3.org/1999/xhtml"><头><?php $this->load->view('meta');?>头部><身体><div id="包装器"><?php $this->load->view('header');?><div id="内容"><?php echo $content;?>
<?php $this->load->view('footer');?>