對非對象的成員函數調用......我正在使用CI 2.1.3,並且在加載模型和引用CodeIgniter「超級對象」時遇到了問題。CodeIgniter - 從模型
例如:
我試圖登錄使用我的登錄控制:
class Login extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('Users_model');
}
public function validate_credentials() {
$this->load->library('form_validation');
// Some form validation here...
$query = $this->Users_model->validate();
if($query) { // if the user's credentials validated...
// something
} else {
// something
}
}
而且當它到達我Users_model:
class Users_model extends CI_Model {
public function __construct()
{
parent::__construct();
}
public function validate()
{
$this->db->where('active', 1);
$this->db->where('email', $this->input->post('email'));
$this->db->where('password', md5($this->input->post('password')));
$query = $this->db->get('user');
if($query->num_rows == 1)
{
return $query;
}
}
}
我得到一個錯誤「致命錯誤:調用一個成員函數,其中的()對第XX行「users_model.php中的非對象」引用validate()函數的第一行。
我可以通過在Login控制器中使用雙冒號(::)運算符(如Users_model :: validate())來獲得它,但我認爲我不應該需要它。
我也可以把它寫類似的工作:在Users_model->的validate()函數的開始
$ci = get_instance();
$ci->db->where...
,但我想我不應該需要做,要麼。
數據庫類正在autoload.php中加載。
所以問題是我的模型中的$ this指的是模型類本身,而不是它應該的「超級對象」。我沒有任何動作,我猜這是關於非常簡單的事情,但我看不到它。請幫幫我。
我不理解爲什麼這被標記爲另一個也被標記爲重複的問題,當兩者都沒有具體回答這個問題時。請參閱:http://stackoverflow.com/q/8447565/594235 – Sparky 2014-10-28 14:36:50