代码点火器 - 如何使用 $data[] 传递和覆盖变量



老实说,我一直在寻找很长时间,但找不到我做错了什么。

目标:向下传递变量并对其进行更新

  1. 我想声明应用程序范围的默认页面标题:

类 MY_Controller 扩展CI_Controller {

public $data = [];
function __construct() {
parent::__construct();
$this->data['pageTitle'] = 'deault';
}

}

  1. 然后我想根据正在使用的控制器重写它:

类 Post 扩展MY_Controller {

public function __construct() {
parent::__construct();
$this->data['pageTitle'] = 'Posts';
}

}

  1. 并在控制器的函数中明确声明它的名称:

    公共函数 show(( {

    //get global data
    $data = $this->data;
    $this->data['pageTitle'] = 'My page title';
    $this->load->view('view1', $data);
    

    }

我希望的最终结果="我的页面标题">

我得到的最终结果="默认">

请给出一个建设性的答案,以便我了解这里出了什么问题?

错误的原因似乎是您正在更改$this->data但将$data发送到视图。

可能的解决方案 1(你想使用这个(

public function show() {
//get global data
$data = $this->data;
$data['pageTitle'] = 'My page title';  //change $data array 
$this->load->view('view1', $data);  // send $data
}

可能的解决方案 2

public function show() {
//get global data
$data = $this->data;
$this->data['pageTitle'] = 'My page title';  //change $data array 
$this->load->view('view1', $this->data);  // send $this->data
}

结果(查看(

<?php echo $pageTitle; ?> // returns 'My page title'

希望对您有所帮助。

相关内容

  • 没有找到相关文章

最新更新