0

codeigniterサイトのエラーで非常に奇妙な問題が発生しています。

Fatal error: Call to undefined method Document::get_by_module()

これを引き起こすコードの行(コントローラー内)は次のとおりです。

$this->document_type->get_by_module('module1');

コントローラーのコンストラクター:

function __construct(){
    parent::__construct();
    $this->load->model('document','document_type');
}

document_typeクラスは次のようになります

class Document_type extends CI_Model {
    function Document_type () {
        parent::__construct();

    }       
    function get_by_module($prefix) {
        // code 
    }
}

私が見ている主な問題は、それDocument::がクラスであると言っているということですが、それはそうあるべきですDocument_type。その関数のドキュメントクラスを検索する必要がある理由はわかりません。

'document'クラスのロードをコントローラーコンストラクターから削除すると、エラーはなくなります(ただし、他のものは壊れます)。

そのようなことがどのように起こっているのかわかりません。

4

1 に答える 1

1

間違ったモデルファイルを読み込んでいるようです。この線

$this->load->model('document','document_type');

「Document」という名前のモデルを見つけて、インスタンスを作成し、の下に置きます$this->document_type。(4番目の例を参照

モデルがあるように見えるので、ロードは成功しますが、 (コントローラーインスタンス)Documentの下に配置されたインスタンスの名前を変更したくない場合は、行の2番目のパラメーターを使用しないでください。$this$this->load->model()

単に書く$this->load->model('document_type');

于 2012-09-25T20:39:29.680 に答える