неоднозначность названия контроллера и модели в коде воспламенителя 2.0.2 - PullRequest
0 голосов
/ 26 сентября 2011

Ниже приведен сценарий: Я интегрировал HMVC в CodeIgniter 2.0.2. Создан модуль со следующей структурой.

/ приложения / модули / Логин

/ приложения / модули / Логин / контроллеры

/ приложения / модули / Логин / Контроллеры / login.php

/ приложения / модули / Войти / модели / login.php

/ приложения / модули / Логин / просмотров / login_form.php

controller / login.php code

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
    }
}

/ вид / login_form.php

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

/ модель / login.php

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

Выход: получена ошибка, указывающая на неопределенный метод Login :: validate () При создании метода validate () в контроллере Login он работает. Но это не должно произойти ... хотя я загружаю модель с именем Login, почему оно указывает на Login Controller.

Может кто-нибудь может мне помочь. То, как я это сделал, правильно? Предложения приветствуются ...

1 Ответ

3 голосов
/ 26 сентября 2011

Вы загружаете и обращаетесь к своей модели неправильно. Взгляните на документацию для большего количества примеров.

Измените authenticate() метод на:

public function authenticate() {
    $this->load->model('login');
    $this->login->validate();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...