Php CodeIgniter“;不在对象上下文中使用$this“;在功能上

Php CodeIgniter“;不在对象上下文中使用$this“;在功能上,php,mysql,codeigniter,Php,Mysql,Codeigniter,如何在代码中替换$this变量?我知道在函数中使用$this是不正确的,但我不知道如何替换它 function get_dates($id) { $class = $this->db->query("SELECT * FROM schedule WHERE class_id='".$id."'"); $class = $class->result_array(); return $class; } 另外,我不想使用mys

如何在代码中替换$this变量?我知道在函数中使用$this是不正确的,但我不知道如何替换它

function get_dates($id) {
        $class = $this->db->query("SELECT * FROM schedule WHERE class_id='".$id."'");
        $class = $class->result_array();
        return $class;
    }

另外,我不想使用mysql和standart php功能,我坚信使用CI功能可以解决这个问题。

如果您想从普通函数内部访问CI框架,您需要获得一个CI实例

function get_dates($id) {
    $ci =& get_instance();

    $class = $ci->db->query("SELECT * FROM schedule WHERE class_id='".$id."'");
    $class = $class->result_array();
    return $class;
}

如果您在Helpers或library中,并且希望访问控制器对象,则必须使用以下用户:

$ci =& get_instance();

一旦您获得控制器对象,您就可以通过$ci引用访问任何公共方法或成员,您也可以通过设置获取对象的getter方法来获取模型对象,然后简单地引用该对象以查询数据库。

我没有看到
$this
(顺便说一句:您在
db
中缺少的
$
)为什么不在对象上下文中?你不是在和模特一起工作吗?如果使用
公共函数获取日期($id){<代码> >它解决了你的错误吗?< <代码> $<这个/<代码>实际上是正确的,但是你的上下文听起来是错误的。顺便说一下,你的代码是脆弱的。OOP,我好像忘记撤消了。$$-dB->这里是你的模型吗?@四叶草:请注意,最好的做法是将业务逻辑保持在模型内。虽然代码ROONYL写的是V。alid,最好将查询放在模型和方法中。