简体   繁体   中英

Why is PHP not finding my model class in CodeIgniter?

I keep seeing this error -

在此处输入图片说明

This is the offending function -

private function getInfo(){
    $this->Features = new UserFeatures_Model($this->ID); //<-- Offending line of Code
    /*Other Stuff - Not Relevant*/
}

This is from where it's being called -

public function __construct($UserID = NULL){
    parent::__construct( TRUE );
    $this->database = $this->load->database('users', TRUE);
    $this->table = 'users';
    $this->idKey = 'User_ID';
    //Assigned UserID should have precedence.
    if (!is_null($UserID)) { $this->ID = $UserID; }
    //If there exists a UserID within this session, automatically load it.
    elseif ($this->session->UserID){ $this->ID = $this->session->UserID; }
    if (isset($this->ID)){ $this->getInfo(); }
}

My first guess as to why this is throwing a fit is because I'm calling the getInfo() method in the constructor... but I'm pretty sure that's not the issue.

Anyway, here is the class definition that it is saying does not exist -

class UserFeatures_Model extends MY_Model {
    /*Irrelevant stuff since it's not 'seeing' this class anyway...*/
}

And here is the directory structure -

在此处输入图片说明

It's there unless I'm hallucinating (a distinct possibility, I am quite tired...)

Why is(are) CI/PHP not finding this class?

You must use $this->load->model('UserFeatures_Model'); inside your getInfo() controller before you call that model function.

private function getInfo($id){
   $this->load->model('UserFeatures_Model');
    $this->Features = $this->UserFeatures_Model->some_function_inside_model($id); 
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM