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

发布于 2024-10-11 12:49:42 字数 471 浏览 3 评论 0原文

各位程序员,使用 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

我尝试过创建简单的哑模型、更改函数名称、在加载模型时给模型一个别名等等...不走运

那么,抛开理论不谈,这可行吗?

提前致谢。

Fellow coders, using 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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

青丝拂面 2024-10-18 12:49:42

你可以这样做:

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

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();
    }
}
执笏见 2024-10-18 12:49:42

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

In CI 2.0 you can just call one model directly from another.

伤感在游骋 2024-10-18 12:49:42

试试这个:

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

Try this:

$this->load->model('decision_model');
$CI =& get_instance();
$CI->decision_model->hello_decision(); 
初相遇 2024-10-18 12:49:42

您还可以添加一个 private $_ci; 类变量,并在构造函数中对其进行初始化。

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

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

然后,您正在使用的任何函数都可以使用它,而无需到处 get_instance()

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.

情深已缘浅 2024-10-18 12:49:42

我将创建一个 CodeIgniter 库,并让该库进行模型操作,然后将其返回到当前模型。我认为这种方法更干净。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文