2016-02-05 100 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

试过了。同样,不工作。 也许我错过了一些愚蠢的错误,但找不到它。 –