控制器&代码点火器2.0.2中的模型名称歧义

时间:2011-09-26 13:03:22

标签: codeigniter model controller hmvc

以下是该场景: 我在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()方法时,它可以工作。但它不应该发生..即使我正在加载一个名为Login的模型,为什么它指向Login Controller。

任何人都可以帮助我。我的方式是正确的吗?建议欢迎......

1 个答案:

答案 0 :(得分:3)

您正在错误地加载和访问您的模型。有关更多示例,请查看documentation

authenticate()方法更改为:

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