2016-02-05 108 views
0

我在使用具有HMVC擴展名的CI 3.0.3時遇到了問題。 我想在用戶成功登錄時設置會話變量。所以我有User.php類,它存儲了登錄視圖和輸入驗證。無法使用CodeIgniter在HMVC模塊內設置會話變量

if($this->form_validation->run() == true): 

    // prep auth, session 
    $login_data = Array(
     'table' => 'users', 
     'cred' => Array(
      'username' => $_POST['username'], 
      'password' => $_POST['password'], 
      'user_active' => 1 
     ) 
    ); 

    $try = modules::load('auth/login', $login_data); 

驗證運行時,我發送數據到驗證模塊,登錄功能。登錄方法運行SQL查詢來驗證用戶輸入,如果一切是正確的登錄方法發送用戶的詳細情況set_login_session方法:

認證/註冊:

$user_details_from_db = $this->lmodel->try_login($table, $login_data); 

if($user_details_from_db) $this->set_login_session($user_details_from_db); 

認證/ set_login_session

public function set_login_session($user_data) { 

    $sess_data = Array(
     'id'  => $user_data->id},   // user id 
     'username' => $user_data->username}, // username 
     'is_logged' => true 
    ); 

    // set session data 
    $this->session->set_userdata($sess_data); 
} 

我想這應該設置會話變量,但它不起作用。當我轉儲所有會話數據,我只看到:

Array 
(
    [__ci_last_regenerate] => 1454660014 
) 

BTW,當我移動所有set_login_session的內容主要user.php的控制器,並運行相同的代碼,還有它完美的作品。但不能作爲HMVC模塊。

另外我通過CI的自動加載加載Session類。

我在做什麼錯?

在此先感謝。

回答

0

我遇到了同樣的問題,在CI 3.0.3中使用HMVC,也許HMVC模塊化版本擴展與CI 3.0.3不兼容,會話不工作,查詢速度很慢。我降級到CI 3.0.1,它的工作完美無缺。

我使用HMVC模塊化從這個: https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/downloads

希望這有助於。

+0

試過了。同樣,不工作。 也許我錯過了一些愚蠢的錯誤,但找不到它。 –