0

私のコードイグナイターアプリケーションには2つのコントローラークラスがあります。クラスAとBIは、クラスAのオブジェクトを作成し、クラスBからクラスAで宣言された関数にアクセスしたいだけです。

class A extends someclass
{
public function function1(){

$this->load->view('welcome_message');  
}       
}
}

class B extends someclass2
{
protected $object;
public function __construct()
{
parent::__construct();

$this->objectA = new A();
}       
}
}

オブジェクト objectA を使用して、クラス B から関数 function1 にアクセスしたいと考えています。これどうやってするの?助けてください。ありがとう

4

2 に答える 2

1

実際、これは codeigniter の適切な方法ではありません。実際には、共通の機能があり、2 つ以上のコントローラーでそれらを使用したい場合。最良の方法は、コア フォルダーに MY_Contoller という名前のベース コントローラーを作成し、それを CI_Contoller から拡張することです。共通関数を MY_Contoller に記述します。次に、CI_Contoller の代わりに MY_Contoller からすべてのコントローラーを拡張する必要があります。モデルでも同じことができます。

于 2013-07-12T10:43:22.297 に答える
0

クロスコントローラー アクセスは、CI のベスト プラクティスに反します。

この共通機能を保持するコントローラーから両方のコントローラーを継承するか (関数の前に「_」を付けて、URL ルーティング経由でアクセスできないようにすることを忘れないでください)、再利用可能な機能を含むライブラリを作成します。ヘルパーも働けます。

于 2013-07-12T10:46:21.473 に答える