0

以下はシナリオです: CodeIgniter 2.0.2 に HMVC を統合しました。次の構造のモジュールを作成しました。

/アプリケーション/モジュール/ログイン

/アプリケーション/モジュール/ログイン/コントローラー

/application/modules/login/controllers/login.php

/application/modules/login/models/login.php

/application/modules/login/views/login_form.php

controller/login.php コード

class Login extends CI_Controller{
    public function index(){
       //load login form view
    }
    public function authenticate(){
       $model = $this->load->model('login'); //tried with Login
       $model->validate(); //shows error here
    }
}

/views/login_form.php

<form name='LoginForm' method='post' action='/login/authenticate'>

/models/login.php

class Login extends CI_Model{
  public function validate(){
    echo $this->input->post('EmailId');
    echo $this->input->post('Pword');
  }
}

出力: 未定義のメソッド Login::validate() を示すエラーが発生 しました。コントローラ ログインで validate() メソッドを作成すると、機能します。しかし、それは起こるべきではありません..ログインという名前のモデルをロードしているにもかかわらず、なぜそれがログインコントローラーを指しているのか.

誰でも私を助けることができますか?私のやり方は正しいですか?提案を歓迎します...

4

1 に答える 1

3

モデルの読み込みとアクセスが正しくありません。その他の例については、ドキュメントを参照してください。

authenticate()メソッドを次のように変更します。

public function authenticate() {
    $this->load->model('login');
    $this->login->validate();
}
于 2011-09-26T13:27:02.737 に答える