1

好的。所以我正在使用 CI 开发一个网站。这是我的控制器的结构:

class MY_Controller extends Controller
class User extends MY_Controller
class User_Model

因此,我在 User 控制器的构造函数中加载了 User_Model。我知道它已正确加载,因为我尝试从 User_Model 打印一些东西并且它工作得很好。但是,当我从 User 控制器使用 User_Model 中的功能之一时,它开始给我错误。这是我收到的错误:

未定义的属性:用户::$User_Model

有人有什么想法吗?

这是扩展控制器

class MY_Controller extends Controller {
    public function __construct() {
      parent::Controller();
    }
}

这是控制器

class User extends MY_Controller {
    public function __construct() {
      parent::__construct();
      $this->load->model('user_model');
      echo $this->user_model->validate_user('hartantothio');
    }
}

这是 User_model

class User_model extends Model {
    public function __construct() {
        parent::Model();
    }        
    public function validate_user($user, $pass = '') {
        return '123';
    }
}
4

4 回答 4

2
$this->load->model('user_model');

应该读

$this->load->model('User_model');

型号名称区分大小写!

于 2011-06-03T20:05:45.507 回答
0

您是否使用语法 $this->User_Model->function_name() 调用该函数?

我也知道我过去也遇到过区分大小写的问题。

于 2010-02-04T19:54:05.467 回答
0

你把My_Controller文件放在哪里?我把我的放进去system/application/libraries,没有任何问题。另外,我使用 PHP4 构造函数的方式来编写它,而不是__constructor

class MY_Controller extends Controller {

  var $is_ajax_request = '';
  var $is_ajax_form = '';

  function MY_Controller()
  {
    parent::Controller();
    //initialize
    $this->is_ajax_request = ($this->input->server('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest');
    $this->is_ajax_form = ($this->input->post('ajax') == 'ajax');
    log_message('debug', "MY_Controller Class Initialized");
    //do extra stuffs here
    //...
  }

}
于 2010-02-08T03:22:58.970 回答
0

好吧,通过使用 MY_Controller 并直接扩展 Controller 的 User 控制器,可以解决问题。

于 2010-02-06T04:23:45.037 回答