0

在我的 CI 控制器中,我具有以下三个功能:

function _temp ($view,$data="") {
  $this->load->view('temp/nm-header',$data);
  $this->load->view($view,$data);
  $this->load->view('temp/footer',$data);
}

function _qs($val) {
  return $this->session->userdata($val);
}

function _qp($val) {
  return $this->input->post($val);
}

我想为此有一个中央控制器,而不是必须在我拥有的每个控制器中复制/粘贴这些方法。做一个图书馆能解决问题吗?如果是这样的话...

$ci =& get_instance

如何使上述变量在我的库类中的所有方法中都可用?

谢谢。

4

2 回答 2

4

无需创建库。相反,创建一个MY_Controller为您的常用方法调用的基本控制器,并让您的其他控制器从它扩展,如下所示:

MY_控制器:

class MY_Controller extends CI_Controller {

    function __construct() {
        parent::__construct();
    }

    function _temp ($view,$data="") {
        $this->load->view('temp/nm-header',$data);
        $this->load->view($view,$data);
        $this->load->view('temp/footer',$data);
    }

    function _qs($val) {
        return $this->session->userdata($val);
    }

    function _qp($val) {
        return $this->input->post($val);
    }

}

您希望访问常用方法的任何其他控制器:

class Some_controller extends MY_Controller {

    function __construct() {
        parent::__construct();
    }

    // _temp(), _qs(), and _qp() are now all available to any controller
    // that extends MY_Controller

}
于 2012-06-10T15:18:40.133 回答
0

您可以创建自己的核心类并扩展 CI 类。 http://codeigniter.com/user_guide/general/core_classes.html

于 2012-06-10T15:14:38.927 回答