0

こんにちは、現在のユーザーがログインしているかどうかを認証するライブラリAuth.phpを作成しました。application/librariesだから私のコントローラーは:

$session_data = $this->session->userdata('logged_in');
$this->load->library('Auth');
$auth = new Auth;
$user_id = $auth->authenticate($session_data);

そしてライブラリ:

class Auth{
    function authenticate($vars){

        $CI =&get_instance();
        $CI->load->model('adminmodels/login_model');

        $username = $vars['username'];
        $password = $vars['password'];
        $user_id = $vars['user_id'];;
        $user_type = $vars['user_type'];

        $check_login = $this->login_model->login($username,$password); //Line 14

        if($check_login){
            $user_id = $user_id;
        }else{
            $user_id = 0;
        }

        return $user_id;
   }
}

しかし、次のようなエラーが表示されます:

PHP エラーが発生しました

重大度: 通知

メッセージ: 未定義のプロパティ: Auth::$login_model

ファイル名: libraries/Auth.php

ライン番号: 14

私は何をしているのですか??

4

2 に答える 2

1

一般的には正しいですが、CI では、newキーワードではなく、次のようにライブラリを呼び出す必要があります。

$this->load->library('Auth');
$user_id = $this->auth->authenticate($session_data);

また、グローバル CI オブジェクトを変数に割り当てたので、それを参照するために使用することはできません$this:

    $check_login = $this->login_model->login($username,$password); //Line 14

次のようにする必要があります。

    $check_login = $CI->login_model->login($username,$password); //Line 14

(そこにモデルをロードしたので$CI->load->model('adminmodels/login_model');:)

于 2013-10-07T07:10:07.117 に答える