1

私はajaxのみを扱うコードイグナイターのクラスを持っています。このクラス内に、リフェラルが ajax リフェラルかどうかをチェックする関数を作成しました。このクラスの関数が使用されるたびに、この関数を呼び出せるようにしたいと考えています。

__callそのため、魔法のメソッドを実装しました

class Ajax_content extends Controller {

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


    }

    function __call($method, $arguments){

            $this->ajaxCheck(); //set up to return false and exit.
            call_user_func_array(array($this,"_".$method),$arguments);

        }

現在のところ、ajaxCheck()常に返さfalseれますexit()。しかし、それは呼び出されていません (現在、私の ajax リクエストはまだデータを返します) これは問題に取り組む有効な方法ですか?

4

2 に答える 2

5

このクラスの関数が使用されるたびに、この関数を呼び出せるようにしたい

__callは、アクセスできないメソッドを呼び出すときにのみトリガーされます。コントローラー メソッドが呼び出されるたびに特定の機能を実行する場合 (つまり、クラス内の関数ではなく、Web 要求にマップされたメソッドを意味すると仮定します)、この機能をコンストラクターに配置する必要があります。

于 2010-11-18T16:52:06.573 に答える