動作しない私は、config.phpの中でフックは、CodeIgniterの2.Xで
$config['enable_hooks'] = TRUE;
をフックを有効にしましたここhook.php
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------------
| Hooks
| -------------------------------------------------------------------------
| This file lets you define "hooks" to extend CI without hacking the core
| files. Please see the user guide for info:
|
| http://codeigniter.com/user_guide/general/hooks.html
|
*/
$hook['post_controller_constructor'] = array(
'class' => 'Authorization',
'function' => 'authorize',
'filename' => 'authorization.php',
'file_path' => 'hooks'
);
/* End of file hooks.php */
/* Location: ./application/config/hooks.php */
、ここではauthorization.phpファイルですアプリケーション/フックの下で/
<?php
class Authorization {
private $ci;
function __construct()
{
parent::__construct();
$this->ci = get_instance();
}
function authorize()
{
echo 'This should be outputed';
}
}
?>
しかし、動作しません。なぜ誰も知りませんか?
これにはいくつか解決策がありますか?私は同じ問題を抱えていますが、POSTフォームが提出されたときには特に動作しませんが、ブラウザで行われたGETリクエストは正常に動作します。 – sanrodari
私は最終的に問題を解決することができました。 'post_system'でフックを使用しようとすると、コントローラ内でリダイレクトを行い、別のコントローラを呼び出すため、POSTフォームの送信には機能しません。したがって、フックが呼び出された最後のコントローラだけが呼び出されます。 フックポイント 'post_controller_constructor'を使ってこの問題を解決しました。したがって、リクエストがコントローラによって処理され、リクエストが別のコントローラにリダイレクトされると、両方のコントローラでフックが呼び出されました。 – sanrodari