CodeIgniter - 模型中的调用方法?

时间:2012-05-09 19:46:16

标签: codeigniter

我有以下代码:

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

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

但它总是在echo $this->bar('world');所在的行上给我一个错误。

  

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

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

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

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

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