Ben*_*Ben 2 php model-view-controller codeigniter
嘿伙计们,我是CodeIgniter的新手,需要一些帮助.我有一个格式化帖子内容区域的控制器.问题是我还需要创建一个包含动态组的侧边栏,以及一个包含最新帖子的右侧列.这并不难,我遇到的问题是我想要每个页面上的侧栏和右栏,我不想重新编码相同的位来获取每个控制器中的数据.
没有复制/粘贴,最好的方法是什么?
有很多方法可以做到这一点.
1)模板化:这是我对大多数情况的偏好(因为我的模板很复杂),我使用类似的东西将我的视图渲染成变量:
$content = $this->load->view('myview', $page_data, true);
Run Code Online (Sandbox Code Playgroud)
然后我将它加载到模板解析器中(你可以将它加载到另一个视图中),如下所示:
$this->load->library('parser');
$data = array(
'page_title' => 'My Page Title',
'page_content' => $content,
'side_bar' => side_bar(), // function which generates your side bar
'right_col' => right_col() // function which generates your right column
);
$this->parser->parse('my_template', $data);
Run Code Online (Sandbox Code Playgroud)
然后你的模板就像:
<html>
<head>
<title>{page_title}</title>
</head>
<body>
<div>{side_bar}</div>
<div>{page_content}</div>
<div>{right_col}</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
2)在视图中加载另一个视图:(假设您的菜单是视图而不是控制器)这样的事情:
<?php $this->load->view('menu_view'); ?>
Run Code Online (Sandbox Code Playgroud)
3)PHP包括:你究竟如何在普通的PHP中做到这一点(只包括一个指向返回菜单的控制器的url),像这样:
<?php include("/common/sidebar"); ?>
Run Code Online (Sandbox Code Playgroud)
Codeigniter将呈现该页面,然后包含它.
4)AJAX ..我使用这个,如果"模板"内容中的内容不太重要,如横幅,建议相关项目列表等.
| 归档时间: |
|
| 查看次数: |
6260 次 |
| 最近记录: |