我如何在自己的库中使用mx_controller变量?

时间:2015-03-17 09:35:36

标签: php codeigniter variables controller hmvc

我正在使用HMVC codeigniter开展项目。我有自己的布局库和名为MY_Controller的基本控制器,代码如下:

class MY_Controller extends MX_Controller{
    public $layout='layout_name';
    public $theme='name';
    ...
    public function __construct(){
        parent::__construct();
        ...
        }
}

我的问题是: 当我在库中使用$this->CI=& get_instance();时,我的控制器的属性如$theme不可用。例如,不能使用$this->CI->theme;,但在控制器中没有问题,我可以在任何地方使用$this->theme;。如何让一个实例在库中包含我的基本控制器变量?

1 个答案:

答案 0 :(得分:0)

解决。根据{{​​3}},我使用加载库的第二个参数,并通过数组将我指定的变量发送到库。在mx_controller中:

class MY_Controller extends MX_Controller{

    private $layout='default';
    private $theme='white';
    private $param=array();

    public function __construct(){
        parent::__construct();
        $this->param=array('layout'=>$this->layout,'theme'=>$this->theme);
        $this->load->library('lib',$this->param);
    }
}