Include a model class without initialize it. - Printable Version +- CodeIgniter Forums (https://forum.codeigniter.com) +-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20) +--- Forum: Archived General Discussion (https://forum.codeigniter.com/forumdisplay.php?fid=21) +--- Thread: Include a model class without initialize it. (/showthread.php?tid=33098) |
Include a model class without initialize it. - El Forum - 08-16-2010 [eluser]megablue[/eluser] I want to extend a model class but somehow $this->load->model() will initialize it as an object. Is there anyway to do it with CI or do I need to use include()? Include a model class without initialize it. - El Forum - 08-16-2010 [eluser]megablue[/eluser] I tried another way which i still run into a problem. I tried to load the base model as usual. $this->load->model('the_base_model', 'basename'); then I tried to unload the base model in order to load the extended model; unset($this->basename); //the_extended_model is extended from the_base_model $this->load->model('the_extended_model', 'basename'); Yet the extended model is unable to initialize. It can work if I give the 'basename' a name change. So is that means CI keeps track of a list of declared object name somewhere and prevent it from redeclaring? Include a model class without initialize it. - El Forum - 08-16-2010 [eluser]danmontgomery[/eluser] Yes, CI keeps a list of instantiated object. You should be using the subclass_prefix setting in config/config.php, then loading the model normally (http://ellislab.com/codeigniter/user-guide/general/creating_libraries.html). If your subclass_prefix is MY_ (default), you would have MY_Model as your base class, then you would extend that class, and load it normally. MY_Model.php Code: class MY_Model extends Model { other_model.php Code: class Other_model extends MY_Model { Controller Code: $this->load->model('other_model') Include a model class without initialize it. - El Forum - 08-16-2010 [eluser]megablue[/eluser] [quote author="noctrum" date="1281980046"]Yes, CI keeps a list of instantiated object. You should be using the subclass_prefix setting in config/config.php, then loading the model normally (http://ellislab.com/codeigniter/user-guide/general/creating_libraries.html). If your subclass_prefix is MY_ (default), you would have MY_Model as your base class, then you would extend that class, and load it normally. MY_Model.php Code: class MY_Model extends Model { other_model.php Code: class Other_model extends MY_Model { Controller Code: $this->load->model('other_model') Yes, i knew about extending the CI base model with CI way. However i have a fairly dynamic application that requires multiple 'base models' base on different situations. Some models share fair amount of code even their default methods, some are distinctly different. |