неоднозначность названия контроллера и модели в кодовом воспламенителе 2.0.2

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

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

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

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

/приложение/модули/логин/модели/логин.php

/application/modules/логин/представления/login_form.php

код контроллера/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'>

/модели/логин.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.

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


person Sailesh Jaiswal    schedule 26.09.2011    source источник


Ответы (1)


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

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

public function authenticate() {
    $this->load->model('login');
    $this->login->validate();
}
person birderic    schedule 26.09.2011