以下是该场景: 我在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。
任何人都可以帮助我。我的方式是正确的吗?建议欢迎......
答案 0 :(得分:3)
您正在错误地加载和访问您的模型。有关更多示例,请查看documentation。
将authenticate()
方法更改为:
public function authenticate() {
$this->load->model('login');
$this->login->validate();
}