【发布时间】:2013-03-25 00:28:14
【问题描述】:
我是 codeigniter 的超级新手,我正在尝试弄清楚如何使用模型,我之前使用过 MVP 框架,但它有点不同。我有用户控制器,它初始化模型(我认为我做对了),然后模型有一个函数,它通过电子邮件获取一行。
控制器看起来像:
class Users extends CI_Controller{
public function login(){
$this->load->model('users_model');
$this->users_model->login('slavigne@uark.edu', 'abcdefg');
$this->load->view('templates/header');
$this->load->view('users/login');
$this->load->view('templates/footer');
}
}
模型看起来像:
class users_model extends CI_Model{
public function users_model(){
parent::__construct();
}
public function login($email, $password){
$query = $this->db->get_where('users', array('email' => $email));
return $query->result();
}
}
我遇到的问题是:
Call to a member function get_where() on a non-object
我理解这意味着 db 不是一个对象,但是我看到的所有模型代码都说这应该可以工作。任何帮助或建议都会很棒!此外,任何关于新手对 codeigniter 错误的建议都会很好!
【问题讨论】:
-
愚蠢的问题,你
$this->load->database();了吗? -
我更改了配置,但没有更改 $this->load->database() 我在哪里执行此操作?
-
只是
login()方法的第一行。 -
为什么还要用一个空的来扩展构造函数呢?此外,您可能应该坚持使用一种形式的构造函数,class_name 或
__construct。 -
在您的配置文件夹中有一个名为 autoload.php 的文件,其中有一行库,只需将“数据库”放在括号内,数据库库就一直可用。 ellislab.com/codeigniter/user-guide/general/autoloader.html
标签: php codeigniter