CodeIgniter"当不在对象上下文中时使用$ this"在功能上

时间:2014-12-09 16:38:34

标签: 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;
    }

PS。我不会使用标准的php功能来使用mysql,我坚信使用CI功能可以解决这个问题。

2 个答案:

答案 0 :(得分:14)

如果要从普通函数内部访问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;
}

答案 1 :(得分:1)

如果您在Helpers或库中并想要访问控制器对象,则必须使用用户:

$ci =& get_instance();

一旦获得控制器对象,您可以通过$ ci引用访问任何公共方法或成员,您也可以通过设置getter方法来获取对象,然后只需引用该对象来查询分贝。