【问题标题】:CodeIgniter Undefined property when loading a model [duplicate]加载模型时CodeIgniter未定义属性[重复]
【发布时间】:2011-12-09 02:11:09
【问题描述】:

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

谢谢

【问题讨论】:

  • 奇怪,理论上应该可以。模型的文件名是什么,是user_model.php
  • 是的,它是 user_model.php,谢谢。

标签: php codeigniter codeigniter-2


【解决方案1】:

只使用这样的东西,$this->load->model('user_model'); 不要使用 $this->load->model('User_model'); 并确保你有相同的名称,当模型名称像 user_mode.php 和类像 class User_model extends CI_Model(){} 所以当你从控制器调用它时使用小写看起来像你的型号名称用户$this->load->model('user_model')

【讨论】:

    【解决方案2】:

    我想我找到了问题所在。我的用户控制器中有一些额外的 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)
    

    我真的应该包括完整的课程,但我试图让它尽可能简单!

    【讨论】:

      猜你喜欢
      • 2011-03-27
      • 1970-01-01
      • 2015-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多