来自库的codeigniter访问模型

时间:2011-07-22 20:47:38

标签: codeigniter

我正在尝试将以下代码集成到我的项目中。它存放在图书馆

function do_std_login($email, $password) {
    $CI =& get_instance();
    $login = $CI->users_model->login($email, md5($password));
    if($login){
        $session_array = array(
            'user_id' => $login->user_id,
            'name' => $login->name,
            'type' => 'Standard'
        );
        $CI->session->set_userdata($session_array);

        // Update last login time
        $CI->users_model->update_user(array('last_login' => date('Y-m-d H:i:s', time())), $login->user_id);

        return true;
    } else {
        $this->errors[] = 'Wrong email address/password combination';
        return false;
    }
}

我这样称呼它:

$login = $this->jaclogin->do_std_login($this->input->post('email'),$this->input->post('password'));

但是当我运行它时,我收到以下错误

遇到PHP错误 严重性:注意 消息:未定义属性:Login :: $ users_model 文件名:libraries / jaclogin.php 行号:45

我已经检查过我在codeigniter autoload文件中加载了正确的库。

任何想法?

由于

Jamie Norman

1 个答案:

答案 0 :(得分:23)

使用CI实例,在库中显式加载模型,如此...

function do_std_login($email, $password) {
    $CI =& get_instance();
    //--------------
    $CI->load->model('users_model');  //<-------Load the Model first
    //--------------
    $login = $CI->users_model->login($email, md5($password));
    if($login){
        $session_array = array(
            'user_id' => $login->user_id,
            'name' => $login->name,
            'type' => 'Standard'
        );
        $CI->session->set_userdata($session_array);

        // Update last login time
        $CI->users_model->update_user(array('last_login' => date('Y-m-d H:i:s', time())), $login->user_id);

        return true;
    } else {
        $this->errors[] = 'Wrong email address/password combination';
        return false;
    }
}