CodeIgniter加载模型时的未定义属性

时间:2011-12-09 02:11:09

标签: php codeigniter codeigniter-2

我在尝试在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);
}
}

由于

2 个答案:

答案 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)

我应该真的包括全班,但我试图让它尽可能简单!