在我的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都能使用上面的变量?
感谢。
答案 0 :(得分:4)
无需创建库。相反,为您的常用方法创建一个名为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
}
答案 1 :(得分:0)
您可以创建自己的核心类并扩展CI类。 http://codeigniter.com/user_guide/general/core_classes.html