3

CakePHP では、コントローラーメソッドの前または後にメソッドを実行する必要がbeforeFilterあります (例: ログを保存する、ログインをチェックするなど)。afterFilter

CodeIgniter でこれを行うにはどうすればよいですか?

4

2 に答える 2

12

フレームワーク コードの特定のポイントの前にコードを実行する目的の機能が実装されている Codeigniter のフックを使用する必要があります。

https://www.codeigniter.com/user_guide/general/hooks.html

リクエスト中のさまざまな時点でメソッドまたはクラスを呼び出すことができる組み込みフックがいくつかあります。

pre_system
pre_controller
post_controller_constructor
post_controller
display_override
cache_override
post_system

したがって、おそらく pre_system や pre_controller のようなものが必要です。

于 2013-07-21T07:34:22.247 に答える
4

_remap() 関数を確認してください。通常のコントローラー関数を呼び出す前に、独自の関数にリダイレクトできます。次のように、独自の _remap 関数をコントローラーに含めることができます (ユーザー ガイドからコピー)。

public function _remap($method)
{
    if ($method == 'some_method')
    {
        $this->$method();
    }
    else
    {
        $this->default_method();
    }
}

_remapURI の 2 番目のセグメントはパラメーターとして関数に渡され(例では として$method)、必要に応じてプロセスをリダイレクトできます。

于 2013-07-21T07:35:16.060 に答える