各位程序员,使用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
我尝试过创建简单的哑模型、更改函数名称、在加载模型时给模型起一个别名等等...没有运气
那么,抛开理论不谈,这可行吗?
提前致谢。
你可以这样做:
class User_model extends Model
{
function get_something()
{
$CI =& get_instance();
$CI->load->model('profile_model');
return $CI->profile_model->get_another_thing();
}
}
在 CI 2.0 中,您可以直接从一个模型调用另一个模型。
试试这个:
$this->load->model('decision_model');
$CI =& get_instance();
$CI->decision_model->hello_decision();
您还可以添加一个
private $_ci;
类变量,并在构造函数中初始化它。
public function __construct($input=null)
{
$this->_ci =& get_instance();
if ( $input != null && is_array($input) ) {
$this->populate($input);
}
}
然后您正在使用的任何功能都可以使用它,无需到处
get_instance()
。
我会创建一个CodeIgniter库,并让该库进行模型操作,然后返回到当前模型。我认为这种方法更干净。