笨 - 模型加载,但不能用?(CodeIgniter - Model loaded but can&

2019-10-19 10:42发布

好。 所以,我在网站上使用CI工作。 这里是我的控制器的结构:

class MY_Controller extends Controller
class User extends MY_Controller
class User_Model

所以,我加载User_Model用户控制器的构造函数中。 我知道这是正确加载,因为我试图打印从User_Model的东西,它的工作就好了。 然而,当我使用的来自用户控制器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';
    }
}

Answer 1:

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

应该读

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

型号名称是区分大小写的!



Answer 2:

您正在使用的语法调用该函数,$这个 - > User_Model->函数名()?

我也知道,我已经在过去遇到问题区分大小写也是如此。



Answer 3:

好了,通过采取MY_Controller并延长了用户控制器直接控制的,即修复该问题。



Answer 4:

你在哪里放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
    //...
  }

}


文章来源: CodeIgniter - Model loaded but can't be used?