gpt4 book ai didi

php - 一个 View 的两个 Controller ,CodeIgniter?

转载 作者:行者123 更新时间:2023-12-02 05:31:35 25 4
gpt4 key购买 nike

大家好,我是 CodeIgniter 的新手,需要一些帮助。我有一个格式化帖子内容区域的 Controller 。问题是我还需要创建一个包含动态组的侧边栏,以及一个包含最近帖子的右栏。这并不难,我遇到的问题是我想要侧边栏和每一页的右栏,我不想重新编码相同的位来获取每个 Controller 中的数据。

如果不复制/粘贴,最好的方法是什么?

最佳答案

有很多方法可以做到这一点。

1) 模板化:这是我在大多数情况下的偏好(因为我的模板很复杂),我使用类似的东西将我的 View 渲染到一个变量中:

$content = $this->load->view('myview', $page_data, true);

然后我将它加载到模板解析器中(仅供引用,您也可以将它加载到另一个 View 中),如下所示:

$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);

那么你的模板是这样的:

<html>
<head>
<title>{page_title}</title>
</head>
<body>
<div>{side_bar}</div>
<div>{page_content}</div>
<div>{right_col}</div>
</body>
</html>

2) 在您的 View 中加载另一个 View :(假设您的菜单是一个 View 而不是 Controller )像这样:

<?php $this->load->view('menu_view'); ?> 

3) PHP 包括:在纯 PHP 中如何实现(只包含一个指向返回菜单的 Controller 的 url),像这样:

<?php include("/common/sidebar"); ?>

Codeigniter 将呈现该页面,然后将其包含在内。

4) AJAX.. 如果"template"内容中的内容不太重要,例如横幅、建议的相关项目列表等,我会使用它。

关于php - 一个 View 的两个 Controller ,CodeIgniter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6052746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com