开发者

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.php

I 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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜