同道编码员,使用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
我尝试过创建简单的哑模型,更改函数名称,在加载时为模型添加别名等等......没有运气
那么,除了理论之外,这是可行的吗?
提前感谢。
答案 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()
遍布整个地方。