从另一个模型CodeIgniter调用模型函数?

时间:2013-07-20 22:38:32

标签: codeigniter model instance

我有一些类,我想加载作为模型,但问题是我想在几个模型中将它们分开,现在我有一个类似于这样的类的文件:

class email {
        function add($email, $name, $quiet=NULL, $actiovation=NULL) {
        global $secretstring;
        global $mail;
        global $path;
        global $activating;

        if (strlen($email) < 1) {
            if (!isset($quiet)) {
                msg::getInstance()->addSuccess("Please enter your email address.");
            }
            $error = 1;
        }
        if (strlen($name) < 1) {
            if (!isset($quiet)) {
                msg::getInstance()->addSuccess("Please enter your name.");
            }
            $error = 1;
        }
                    $addData = mysql_fetch_array(sql::getInstance()->query("SELECT id FROM emails WHERE email='".sql::getInstance()->sec($stamp)."'")); // getting id of this email

}

class msg {
    static private $instance = NULL;
    function addSuccess($success) {
        $this->success .= $success."\\n ";
    }
}

class sql {
    static private $instance = NULL;

    function query($query) {
        return mysql_query($query);
    }   

    function sec($string) {
        return mysql_real_escape_string(htmlspecialchars($string));
}

使用实例我可以轻松地从另一个类调用函数?但问题是当我想从另一个模型调用函数时,在一个模型中,我不知道如何在CI中进行调用?任何帮助我都举了一个简单的例子来说明我是如何创建课程的。

2 个答案:

答案 0 :(得分:4)

您只需要确保在要使用这些函数的模型中加载要调用函数的模型。就像在控制器中一样。

这样的事情:

public class Email extends CI_Model{
    function add(...){
        $this->load->model('msg');
        $this->msg->addSuccess(...);
    }
}

这真的很容易。

答案 1 :(得分:0)

CI有两种调用函数的方法。无论您创建什么模型,您都必须在该类中加载您希望使用该类的模型。

  • 手动加载。

    $这 - &GT;负载&GT;模型( “your_model_name”);

注意:在要使用的类中调用上面的行。

  • 自动加载

将您的类加载到application / config / auto_load.php

中的auto_load类中

调用功能:

$这 - &GT; your_class_name-&GT;函数名(参数);

阅读这些资源以获得更多帮助和说明。

  1. https://ellislab.com/codeigniter/user-guide/libraries/loader.html
  2. https://ellislab.com/codeigniter/user-guide/general/autoloader.html