gpt4 book ai didi

php - 如何在布局/默认中设置 Controller 和模型以在所有页面中加载

转载 作者:行者123 更新时间:2023-11-29 13:57:02 24 4
gpt4 key购买 nike

布局

对于我加载数据时的所有页面,模型和 Controller 不起作用。我分配的其他模型可以工作。我的意思是,所有页面都有一个 Controller 和布局模型,但其他页面有自己的模型和 Controller 。一个 Controller 用于所有页面,一个 Controller 用于每个页面。

<?php foreach ($sidebars as $row):  ?>
<tr><td><?php echo $row->title; ?> </td></tr>
<?php endforeach; ?>

<div id="main" role="main" class="content">
{content}------here this show my pages content other model and controller
</div>

Controller

在我的 Controller 上我加载我的页面

现在如果我再次加载其他页面,我必须输入

$this->load->model('side_model');
$data['sidebars'] = $this->side_model->get_sidebar();

我的页面 Controller 之一可以工作,但其他 Controller 如果不提及则不起作用,我想将其作为每个页面的 Controller ,并且我不想在上面的代码的每个页面 Controller 中提及

"<?php"
public $layout = 'default'

public function index()
{
$this->load->model('side_model');
$data['sidebars'] = $this->side_model->get_sidebar();
$this->load->view('Layout/default',$data);
}

型号

function get_sidebar(){
$this->db->select('*');
$this->db->from('side');
$this->db->where('active','1');
$this->db->order_by('added_date', 'DESC');

return $this->db->get()->result();

如何制作一个主 Controller 和一个模型,为所有页面提供多种功能?

最佳答案

创建一个名为 core/MY_Controller.php 的文件:

    class MY_Controller extends CI_Controller {

public function __construct(){
parent::__construct();
$this->load->model("side_model");
$this->data["sidebars"] = $this->side_model->get_sidebar();
}

protected function get_html_meta($meta){
// method will be available for all extending controllers
return ucfirst($meta)." ".date("Y-m-d");
}

}

从现在开始,您应该扩展 MY_Controller 而不是 CI_Controller,在现有 Controller 中,您现在可以传递可用于 View 的变量 $this->data (我添加了一些示例$this->data 用法及其范围:

class your_controller extends MY_Controller {

public function index(){
$this->data["html_meta"] = $this->get_html_meta("this is meta");
$this->data["html_title"] = "Hello World!";
$this->load->view('Layout/default',$this->data);
}

}

注意:$this->data 不同,$data 的作用域仅位于您声明它的函数内部。

对于全局模型,一旦 MY_Controller 构造函数(或 autoload.php)加载模型,只要其他 Controller 扩展 MY_Controller,您就可以调用该模型。

关于php - 如何在布局/默认中设置 Controller 和模型以在所有页面中加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15699810/

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