20

認証が必要なCodeIgniterを使用してWebアプリを作成しています。すべての認証を処理するモデルを作成しました。ただし、別のモデルの内部からこの認証モデルにアクセスする方法が見つかりません。別のモード内からモデルにアクセスする方法、またはCodeIgniter内で認証を処理するためのより良い方法はありますか?

4

4 に答える 4

18

おそらく別の方法で解決する必要がありますが、モデル内にモデルをロードできるようです。議論については、 CodeIgniter フォーラムを参照してください。

class SomeModel extends Model
{
  function doSomething($foo)
  {
    $CI =& get_instance();
    $CI->load->model('SomeOtherModel','NiceName',true);

    // use $CI instead of $this to query the other models
    $CI->NiceName->doSomethingElse();
  }
}

また、オブジェクトの中にオブジェクトを作成するべきではないというティルの言っていることが理解できません。もちろん、そうすべきです!オブジェクトを引数として送信することは、私にはあまり明確ではないように見えます。

于 2008-09-16T17:55:48.720 に答える
14

一般に、オブジェクト内にオブジェクトを作成する必要はありません。これは悪い習慣です。代わりに、明確なAPIを記述して、モデルをモデルに挿入します。

<?php
// in your controller
$model1 = new Model1();
$model2 = new Model2();
$model2->setWhatever($model1);
?>
于 2008-09-05T17:26:45.090 に答える
1

モデルで認証を処理しないでください。データベースやldapなどとのインターフェースにはモデルのみを使用してください。

認証と承認を管理するために使用する Auth ライブラリを作成しました。コントローラからこのようなライブラリにアクセスできます。

于 2008-09-16T17:44:14.707 に答える
1

新しい CodeIgniter を使用して、モデル内にモデルをロードできるようになりました。

于 2013-07-18T21:24:06.613 に答える