2011-08-19 14 views
0

的問題我的控制器的構造函數: 我定義我的鉤幾個常數,但我不能訪問他們我的子類控制器內構造函數。笨:如何加載常數,在鉤規定,在

的代碼: A - 鉤類:

class Settings extends CI_Hooks { 

    public function load_settings() { 
     $CI =& get_instance(); 
     $CI->load->model('hooks/settings_model'); 
     $data = $CI->settings_model->load_settings(); 
     define('MEMBERS_PER_PAGE', $data['members_per_page']); 
     define('REGISTER_ENABLED', $data['register']); 
     define('SITE_ACCESS_ENABLED', $data['site_access']); 
     define('ADMIN_EMAIL', $data['admin_email']); 
    } 

} 

乙 - 鉤配置:

$hook['post_controller_constructor'] = array(
           'class' => 'settings', 
           'function' => 'load_settings', 
           'filename' => 'settings.php', 
           'filepath' => 'hooks' 
           ); 

c - 接收控制器

class MY_Controller extends CI_Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
     defined('SITE_ACCESS_ENABLED') ? print SITE_ACCESS_ENABLED : print "NULL"; 
    } 
} 

的方式予理解* post_controller_constructor *是在t之後加載的他的控制器被初始化,但在構造函數執行之前。顯然,我定義的常量在任何構造函數中都不起作用,而來自config/constants.php的常量確實有效。

任何幫助和見解都非常感謝,因爲掛鉤對我來說是全新的。

回答

0

那麼,post_controller_constructor剛剛發生。在構造函數完成構造控制器之後:-)。

你需要在pre_controller上激發它,並且自己管理模型的實例化,否則你必須等到控制器的方法被調用,然後才能訪問這些值。抱歉。

+0

無需道歉,謝謝你的明確答案。我決定擺脫困境並以其他方式去做。 – qwertzman