所以我从我的自定义Admin_controller扩展我的自定义Dashboard控制器,从我的自定义MY_controller扩展Codeigniter默认CI_controller . 仪表板从MY_controller获取所有字段,但没有来自Admin_controller .

仪表板:

class Dashboard extends Admin_Controller {

    function __construct() {
        parent::__construct();
        var_dump($this->data);
    }
}

Admin_Controller:

<?php

class Admin_Controller extends MY_Controller {

    public function __construct() {
        parent::__construct();
        $this->data['meta_title'] = 'Death Star CMS';
        $this->data['test'] = 'test';
        $this->load->model('user_m');
    }

}

MY_Controller:

class MY_Controller extends CI_Controller {

    public $data = [];

    function __construct() {
        parent::__construct();
        $this->data['errors'] = [];
        $this->data['site_name'] = config_item('site_name');
    }
}

是CI_Controller:

class CI_Controller {

    private static $instance;

    /**
     * Constructor
     */
    public function __construct()
    {
        self::$instance =& $this;

        // Assign all the class objects that were instantiated by the
        // bootstrap file (CodeIgniter.php) to local class variables
        // so that CI can run as one big super object.
        foreach (is_loaded() as $var => $class)
        {
            $this->$var =& load_class($class);
        }

        $this->load =& load_class('Loader', 'core');

        $this->load->initialize();

        log_message('debug', "Controller Class Initialized");
    }

    public static function &get_instance()
    {
        return self::$instance;
    }
}

Dashboard构造函数中的var_dump($ this-> data)仅显示在MY_controller中添加的$ data []元素([errors]和[site_name]) . 如何在Admin_Controller构造函数中向$ data []添加元素?

它也无法加载user_m模型 .