我在尝试在codeigniter中实现一个非常简单的模型控制器时收到以下错误。我是框架的新手,但据我所知,这应该有效。
我也试过自动加载模型。我正在自动加载数据库库。
Message: Undefined property: User::$user_model
Fatal error: Call to a member function get_user() on a non-object
模型
class User_model extends CI_Model
{
function __construct()
{
parent::__construct();
}
function get_user()
{
return "test";
}
}
控制器
class User extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
function index()
{
$this->load->model('User_model');
$data['value'] = $this->User_model->get_user();
$this->load->view('user_edit', $data);
}
}
由于
答案 0 :(得分:2)
只使用这样的内容,$this->load->model('user_model');
不要使用$this->load->model('User_model');
并确保您的名称相同,如user_mode.php
这样的模型名称和class User_model extends CI_Model(){}
这样的类因此,当您从控制器中调用它时,使用小写看起来就像您的模型名称user $this->load->model('user_model')
答案 1 :(得分:0)
我想我发现了这个问题。我的用户控制器中有一些额外的setter方法,我一直都在使用它,并不认为它们会成为问题。
public function __set($key, $value)
{
// Check to see that the requested attribute exists and then assign the value
if (property_exists($this, $key))
{
$this->$key = $value;
}
}
结果我需要带走其中一个下划线,因为codeigniter不喜欢它。
public function _set($key, $value)
我应该真的包括全班,但我试图让它尽可能简单!