5

私は次のコードを持っています:

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

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

しかし、それは常にisの行にエラーを与えます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 に答える