5

我有以下代码:

class Badge extends CI_Model
{
    public function foo()
    {
        echo $this->bar('world');
    }

    public function bar($word)
    {
        return $word;
    }
}

但它总是给我一个错误echo $this->bar('world');

调用未定义的方法(......)

4

2 回答 2

9

您没有将模型加载到控制器中:

public function test()
{
    $this->load->model('badge');
    $this->badge->foo();
}

因为代码有效 - 我刚刚通过使用未经编辑的模型粘贴对其进行了测试:

class Badge extends CI_Model
{
    public function foo()
    {
        echo $this->bar('world');
    }

    public function bar($word)
    {
        return $word;
    }
}

输出:

world
于 2012-05-09T20:41:56.740 回答
2

为了避免任何外部调用依赖,您需要获取 Codeigniter 实例并通过实例调用方法。

class Badge extends CI_Model
{
    public function foo()
    {   
        $CI =& get_instance();

        echo $CI->Badge->bar('world');
    }

    public function bar($word)
    {
        return $word;
    }
}
于 2014-04-30T16:11:44.840 回答