1

CI アプリケーションで "pre_controller hook 具体的に" フックを使用しています。
しかし、問題は、フックをアクティブにしたくないコントローラーであっても、他のコントローラーにリクエストが発行されるたびにフックがアクティブになることです。フックは1つのコントローラーに対してのみ有効にできますか? playframework の @Before アノテーションのように。
前もって感謝します。

4

2 に答える 2

8

そのロジックをコントローラーのコンストラクターに入れてみませんか?

この機能を共有したいコントローラが複数ある場合は、単にCI_Controller新しいクラスを拡張application/core/MY_Controller.phpしてそこに機能を配置し、コントローラでデフォルトの CI_Controller の代わりにそのクラスを拡張します (複数のクラスを追加できます)。MY_Controller.php)!

オーバーライド クラスに入れるものMY_Controller.phpはすべて、コントローラーの残りのコードの前に実行され、pre_controllerフックをシミュレートします。

親コンストラクターも呼び出すことを忘れないでください。

function __construct(){
   parent::__construct();
}

コアの拡張に関する詳細については、マニュアルを参照してください: https://www.codeigniter.com/user_guide/general/core_classes.html

于 2012-11-24T08:33:16.063 に答える