我在CodeIgniter中創建了一個控制整個管理員的控制器。如果需要,它將加載另一個控制器,具體取決於URL。它工作正常,但由管理員控制器加載的控制器無法訪問數據庫。CodeIgniter控制器無法加載數據庫
這是我的代碼在管理控制器加載必要的控制器。
public function renderAdmin(){
$get=$this->input->get();
if (!empty($get['module'])){
$module=$get['module'];
}
else{
$module="";
}
if (!empty($module)){
if (!empty($get['method'])){
$method=$get['method'];
}
else{
$method="index";
}
$module=modules::load($module."/".$module);
if (!method_exists($module, $method)){
$method="index";
}
$module->$method();
}
else{
$data['screen']=$this->config->item('foo_template_dir_admin')."index";
$data['menuPoints']=self::getMenuPoints();
$this->load->view($this->config->item('foo_template_dir_admin') . "frame", $data);
}
}
當我加載例如標籤控制器,它無法加載數據庫。
public function index(){
$data['menuPoints']=Admin::getMenuPoints();
$data['screen']=$this->config->item('mindenrekepes_template_dir_admin')."tags/index";
var_dump($this->db); // NULL
$this->load->view($this->config->item('mindenrekepes_template_dir_admin')."frame", $data);
}
該數據庫位於自動加載文件中,因此它將被加載。
在管理員控制器或其中一個模型中,我可以訪問數據庫,因此數據庫配置和自動加載也適用於主控制器。
你知道會是這個問題嗎?我希望有人能幫助我解決這個問題。
這是自動加載和正常工作,但只有主控制器具有$ DB屬性和其他人沒有。 – kukko
我發現這個問題,因爲HMVC擴展我會擴展MX_Controller而不是MY_Controller。對不起,我沒有在問題中提到如何使用HMVC。但是我接受@ g9m29的回答,因爲這真的很有幫助。 – kukko