2015-10-06 107 views
0

我在Ci中有一個項目,並且由於某種原因無法識別我的check2()。 CI不斷拋出致命錯誤:調用未定義的方法CI_Loader :: CHECK2()Codeignitor - 調用未定義的方法

控制器(login.php中)

class Login extends CI_Controller { 

public function index() { 
// Page variables 
$page['title'] = "Analytics Login"; 
$this->load->view('header', $page); 
$this->load->view('login'); 
$this->load->view('footer'); 
} 

public function verify() { 

$verifier = $this->load->model('Verifylogin_model'); 

$username = $this->input->post('username'); 
$password = $this->input->post('password'); 

if((!$verifier->check2($username,$password))) { 
$this->load->view('login'); 
} else { 
redirect('home', 'refresh'); 
} 
} 
} 

模型(verifylogin_model.php)

<?php 
Class Verifylogin_model extends CI_Model { 

function __construct() { 
parent::__construct(); 
    } 

public function check2($username, $password) { 

$this->db->select('user_id, user_email'); 
$this->db->from('admin_users'); 
$this->db->where('user_email', $username); 
$this->db->where('user_pass', md5($password)); 
$this->db->limit(1); 

$results = $this->db->get(); 

if ($results->num_rows() == 1) { 
return true; 
} else { 
return false; 
} 
} 
} 
?> 

任何意見或幫助歡迎並非常感謝

回答

1

CI加載程序不會返回模型實例,而是返回全局CI實例。

您可以使用:

$this->load->model('Verifylogin_model'); 
$verifier = $this->Verifylogin; 
+0

謝謝!這有幫助! –

1

訪問

$this->load->model('verifylogin_model'); 

$this->verifylogin_model->check2(); 
+0

謝謝!這有幫助! –

1

CI使用 「依賴注入」 全副以下方式模型的方法。 Loader不是一個工廠類,你不能直接獲得Verifylogin_model實例。在CI中,您應該像下面的示例那樣調用模型

if (!$this->Verifylogin_model->check2($username, $password)) { 
/* your code */ 
} 
+0

謝謝!這有幫助! –

+0

只需注意,CI不使用DI--它使用全局變量和服務容器。我希望它是使用適當的DI容器... –

相關問題