2016-02-10 82 views
1

我需要設置數據庫中定義的其他配置。我的想法是在pre_controller鉤子中擴展CI配置。在鉤子中擴展Codeigniter配置

掛鉤不是問題,但如何以正確的方式擴展CI配置?

有人可以解釋給我一些例子,如果可能的話?

除此之外,如果我將它掛在pre_controller中,它是否會檢查緩存中每個請求的數據庫配置和值,因爲我需要檢查每個請求上的表嗎?

回答

0

不需要使用鉤一定

應用

/核心/創建基本應用控制器EX:AppController的

class AppController extends CI_Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 

     $config = $this->db->get('config')->result(); 

     foreach ($config as $config_item) 
     { 
      $this->config->set_item($config_item->name, $config_item->value); 
     } 
    } 

} 

和所有應用程序控制器從AppController的延伸

class Main extends AppController 
{ 
    // other functions 
} 
+0

感謝答案是,以其他方式做它不是更好嗎?通過這種方式,我有兩個擴展...除此之外,我有很多控制器要更改,因爲它們都擴展了CI_Controller ... – mixerowsky

+0

在鉤子中添加pre_system鉤子並在鉤子文件中,您可以$ CI =&get_instance();和$ CI-> load-> database(); $ CI->數據庫 - > get()方法;和$ CI-> load - > {config_class}和$ CI-> config-> set_item();這是例子! –