Welcome Guest, Not a member yet? Register   Sign In
Undefined property when accessing model class
#11

[eluser]pbarney[/eluser]
You're leaving out some code that might be important to diagnose the problem.

The error says there's a problem on line 16, but there are only 14 lines that you show us.

Please post the actual file.
#12

[eluser]gor1lla[/eluser]
[quote author="pbarney" date="1282486121"]You're leaving out some code that might be important to diagnose the problem.

The error says there's a problem on line 16, but there are only 14 lines that you show us.

Please post the actual file.[/quote]

i delete some of the code that was commented.

i have attached the file and now the error is on line 13
when i am trying to access the $this->category_model->get(1);
#13

[eluser]pbarney[/eluser]
There is nothing wrong with the code you're giving us. There has to be more to it than that. Based on what you've shown us, there's nothing that anyone here can tell you. The problem is not with the code you've shown, but with some other part that we're not seeing.
#14

[eluser]gor1lla[/eluser]
The problem is I didn't change any of the other files, except changing the url inside config.php.
I only added those 2 files.

If I changed my code to the following, there isn't any error.
Code:
class Test extends Controller {
    function Test()
    {
        parent::Controller();
    }
    
    function index()
      {
        $CI =& get_instance();
        $CI->load->model('category_model');
        $CI->category_model->get(1);
    }
}

I did a print_r($CI) inside the Loader library's model function, category_model is there.
I can even call the model via $CI->category_model and no error.

Code:
function model($model, $name = '', $db_conn = FALSE)
    {        
        if (is_array($model))
        {
            foreach($model as $babe)
            {
                $this->model($babe);    
            }
            return;
        }

        if ($model == '')
        {
            return;
        }
    
        // Is the model in a sub-folder? If so, parse out the filename and path.
        if (strpos($model, '/') === FALSE)
        {
            $path = '';
        }
        else
        {
            $x = explode('/', $model);
            $model = end($x);            
            unset($x[count($x)-1]);
            $path = implode('/', $x).'/';
        }
    
        if ($name == '')
        {
            $name = $model;
        }
        
        if (in_array($name, $this->_ci_models, TRUE))
        {
            return;
        }
        
        $CI =& get_instance();
        if (isset($CI->$name))
        {
            show_error('The model name you are loading is the name of a resource that is already being used: '.$name);
        }
    
        $model = strtolower($model);
        
        if ( ! file_exists(APPPATH.'models/'.$path.$model.EXT))
        {
            show_error('Unable to locate the model you have specified: '.$model);
        }
                
        if ($db_conn !== FALSE AND ! class_exists('CI_DB'))
        {
            if ($db_conn === TRUE)
                $db_conn = '';
        
            $CI->load->database($db_conn, FALSE, TRUE);
        }
    
        if ( ! class_exists('Model'))
        {
            load_class('Model', FALSE);
        }

        require_once(APPPATH.'models/'.$path.$model.EXT);

        $model = ucfirst($model);
                
        $CI->$name = new $model();
        $CI->$name->_assign_libraries();
        
        $this->_ci_models[] = $name;

        // tracing
        print_r($CI);
        $CI->category_model->get(1);
    }

I am suspecting that the $CI is not referenced properly.
Is $this same as $CI =& get_instance() ?
Could it be a php.ini setting that is affecting this?
#15

[eluser]Brian Loomis[/eluser]
I can confirm that is is replicable under CI 1.7.2

for about 90 minutes this morning I struggled with this and finally found this post. I changed all instances of $this to $CI in my controller, ran the page again, and then had another error related to $CI, HOWEVER, when I did another find and replace on $CI to $this in the controller all my code worked magically fine.

This error persisted before the find and replace even after several apache restarts, and one restart of the laptop. There was nothing else changed in code. This was on a locally hosted development site so no ISP or upstream caching was responsible either.

Brian




Theme © iAndrew 2016 - Forum software by © MyBB