Loading and using a codeigniter model from another model
Fellow coders, u开发者_开发知识库sing codeigniter 1.7.3 can I load a model from the code of another model? I have read many posts theoretical and practical but none gave a final answer.
I have a model that has a function in which i would like to perform an operation on another model. the code is like this:
1: $this->load->model('decision_model');
2: $this->decision_model->hello_decision();
line 1 works. line 2 fails as follows:
A PHP Error was encountered
Severity: Notice Message: Undefined property: Account_model::$decision_model Filename: models/account_model.phpI have tried creating simple dumb models, changed function names, giving the model an alias when loading it, etc... no luck
So, theory aside, is this doable?
thanks in advance.
You can do it like this:
class User_model extends Model
{
function get_something()
{
$CI =& get_instance();
$CI->load->model('profile_model');
return $CI->profile_model->get_another_thing();
}
}
In CI 2.0 you can just call one model directly from another.
Try this:
$this->load->model('decision_model');
$CI =& get_instance();
$CI->decision_model->hello_decision();
You can also add a private $_ci;
class variable, and initialize it in your constructor.
public function __construct($input=null)
{
$this->_ci =& get_instance();
if ( $input != null && is_array($input) ) {
$this->populate($input);
}
}
Then it'll be available to any function you're working with, no need to get_instance()
all over the place.
I would create a CodeIgniter Library, and make the library make the model operation and then return it to the current model. I think this approach is more clean.
精彩评论