2011-07-07 49 views
1

所以我很難讓我的鉤子實際上做任何事情。我想在每次渲染視圖之前設置一些會話變量。我已經把這個在我的配置/ hooks.php:CodeIgniter:如何在hooksr中設置會話和/或控制器變量?

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

我也能在配置文件中鉤:

$config['enable_hooks'] = TRUE; 

我試圖讓工作代碼:

<?php 
class Permissions { 
    var $CI; 

    public function __construct() { 
     $this->CI = &get_instance(); 
     $this->CI->load->library("session"); 
    } 

    public function can_view(){ 
     $this->CI->session->set_userdata('test','test'); 
    } 
} 

會話變量不工作的一個簡單的回聲,但是當我在一個控制器設置會話變量,它的工作原理...

+0

沒有類權限必須擴展的東西? – Brad

+0

我也試過,但沒有去。 – Suraj

回答

1

ñ不顯示某個控制器的代碼,但是如果您正在加載會話庫兩次,在掛鉤和控制器代碼中,可能是第二次加載重新初始化$ this-> CI->會話。 CI負責不加載兩次,而是每次嘗試初始化。 您可以通過啓用日誌來檢查是否發生雙重負載,您會發現一條警告您的消息。

請嘗試自動加載會話庫。

+0

我試過自動加載,並從配置和控制器中取出加載,但沒有更改... – Suraj

+0

請啓用登錄並檢查是否有任何消息 –

+0

我啓用了日誌記錄,但在那裏和鉤子類初始化,但它沒有調用鉤子類。 – Suraj