2013-02-07 14 views
8

codeigniterを使用しています。2.1.3ライブラリのCodeigniterロードモデル

ライブラリからモデルをロードしようとしています。最初は、ライブラリ内の構築物中の私のコードは、私が試したとき

は、その下の行は

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

を仕事doesntのマイライブラリのいずれかの方法で次に、この

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

のように見えますが、私が試したときこの

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

これは誰でも、CIのインスタンスがモデルをロードするときに2つの追加パラメータを確認しますか?前もって感謝します。

答えて

2

データベースの設定ファイルで定義されますが、第3パラメータでTRUE(ブール値)を渡すことによって、自動接続、および接続設定モデルの読み込み機能を伝えることができますが使用されます。

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

することはできこれについてはリンクの下のページの最後にあります。

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

22

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

CIアプリケーションで実行したいタスクを解決するために、手作りのライブラリを使用できます。

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

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

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

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

あなたは同じ部材を介して、あなたのモデルにアクセスする場合:

$respone = $this->CI->model_name->method(); 
関連する問題