确定。所以我正在使用CI的网站上工作。这是我的控制器的结构:
class MY_Controller extends Controller
class User extends MY_Controller
class User_Model
因此,我在User控制器的构造函数中加载User_Model。我知道它已正确加载,因为我试图从User_Model打印一些东西,它工作得很好。但是,当我使用User控件的User_Model中的一个函数时,它开始给我错误。这是我收到的错误:
未定义属性:User :: $ 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';
}
}
答案 0 :(得分:2)
$this->load->model('user_model');
应该阅读
$this->load->model('User_model');
模型名称区分大小写!
答案 1 :(得分:0)
您是否使用语法调用该函数,$ this-> User_Model-> function_name()?
我也知道我过去也遇到过区分大小写的问题。
答案 2 :(得分:0)
好吧,通过获取MY_Controller并直接扩展Controller的用户控制器,可以解决问题。
答案 3 :(得分: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
//...
}
}