Search code examples
phpcodeignitermodelclassnotfoundexception

Why is PHP not finding my model class in CodeIgniter?


I keep seeing this error -

enter image description here

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 -

enter image description here

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

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


Solution

  • 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); 
    }