14

codeigniter 2.1.3 を使用しています

ライブラリからモデルを読み込もうとしています。最初、ライブラリ内の構成内の私のコードは次のようになります

$this->CI=& get_instance(); $this->CI->load->database('default')

次に、私のライブラリメソッドの1つで

下の行を試したところ、うまくいきませんでした

$this->load->model('model_name')

しかし、私がこれを試したとき

$this->CI->load->model('model_name','',TRUE)

CI のインスタンスが参照するものと、モデルをロードするときの 2 つの追加パラメーターを誰でも説明できますか? 前もって感謝します。

4

3 に答える 3

32

ライブラリは、必ずしも CodeIgniter が動作する方法の一部ではありません。

CIアプリケーションで実行したいタスクを解決するための自家製ライブラリである可能性があります。

これは、CI のヘルパー、モデル、またはその他のライブラリを使用する場合は、CI インスタンスを介してこれを行う必要があることを意味します。これは、次のようにすることで達成されます。

public function __construct()
{
    $this->CI =& get_instance();
}

CI という名前のライブラリ メンバーにインスタンスを割り当てることにより、すべての CI 関連のヘルパー、モデル、およびライブラリを を通じてロードできます$this->CI$thisCIインスタンスではなく、現在のライブラリのみを参照しているだけです。

ライブラリにモデルを正しくロードする$this->CI->load->model('model_name');だけで十分です。2 番目のパラメーターを使用すると、別のオブジェクト名でモデルにアクセスできます。3 番目のパラメーターはモデルのロードには必要ありませんが、データベース ドライバーを自動ロードできます。

同じメンバーを介してモデルにアクセスする場合:

$respone = $this->CI->model_name->method();
于 2013-02-07T19:01:52.953 に答える
2

3 番目のパラメーターを介して TRUE (ブール値) を渡すことにより、モデルの読み込み関数に自動接続するように指示できます。データベース構成ファイルで定義されている接続設定が使用されます。

$this->load->model('Model_name', '', TRUE);

これについては、この下のリンクのページの最後で詳細を確認できます。

http://ellislab.com/codeigniter/user-guide/general/models.html

于 2013-02-07T18:56:39.440 に答える