我有以下代码:
class Badge extends CI_Model
{
public function foo()
{
echo $this->bar('world');
}
public function bar($word)
{
return $word;
}
}
但它总是在echo $this->bar('world');
所在的行上给我一个错误。
调用未定义的方法(......)
答案 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;
}
}