1

我有一些类,我想作为模型加载,但问题是我想将它们分成几个模型,现在我有一个文件,其中的类如下所示:

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 中实现?任何帮助我都做了一个简单的例子来展示我是如何制作课程的。

4

2 回答 2

4

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

像这样的东西:

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

真的就这么简单。

于 2013-07-22T09:57:24.640 回答
0

CI 有两种调用函数的方法。无论您创建什么模型,都必须将该模型加载到要使用该类的那个类中。

  • 手动加载。

    $this->load->model("your_model_name");

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

  • 自动加载

在 application/config/auto_load.php 中的 auto_load 类中加载您的类

函数调用:

$this->your_class_name->function_name(参数);

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

  1. https://ellislab.com/codeigniter/user-guide/libraries/loader.html
  2. https://ellislab.com/codeigniter/user-guide/general/autoloader.html
于 2014-12-13T05:56:53.877 回答