代码点火器:一个区域中最常用的方法


Code Igniter: Most used methods in one area

在我的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

如何使上面的这个变量在我库类中的所有 menthod 中可用?

谢谢。

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

MY_Controller:

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
}

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