从另一个模型加载和使用codeigniter模型

时间:2011-01-07 19:09:26

标签: codeigniter model

同道编码员,使用codeigniter 1.7.3我可以从另一个模型的代码加载模型吗?我读了许多理论和实践的帖子,但没有给出最终答案。

我有一个模型,其中有一个函数,我想在另一个模型上执行操作。代码是这样的:

1: $this->load->model('decision_model');
2: $this->decision_model->hello_decision();  

第1行有效。第2行失败如下:

遇到PHP错误 严重性:通知
消息:未定义的属性:Account_model :: $ decision_model
文件名:models / account_model.php

我尝试过创建简单的哑模型,更改函数名称,在加载时为模型添加别名等等......没有运气

那么,除了理论之外,这是可行的吗?

提前感谢。

4 个答案:

答案 0 :(得分:14)

你可以这样做:

class User_model extends Model
{
    function get_something()
    {
         $CI =& get_instance();
         $CI->load->model('profile_model');
         return $CI->profile_model->get_another_thing();
    }
}

答案 1 :(得分:6)

在CI 2.0中,您可以直接从另一个模型调用一个模型。

答案 2 :(得分:0)

试试这个:

$this->load->model('decision_model');
$CI =& get_instance();
$CI->decision_model->hello_decision(); 

答案 3 :(得分:0)

您还可以添加private $_ci;类变量,并在构造函数中初始化它。

public function __construct($input=null)
{
    $this->_ci =& get_instance();

    if ( $input != null && is_array($input) ) {
         $this->populate($input);
    }
}

然后它就可用于您正在使用的任何功能,无需get_instance()遍布整个地方。