2011-12-10 10 views
0

動作しない私は、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'; 
     } 

    } 

?> 

しかし、動作しません。なぜ誰も知りませんか?

+0

これにはいくつか解決策がありますか?私は同じ問題を抱えていますが、POSTフォームが提出されたときには特に動作しませんが、ブラウザで行われたGETリクエストは正常に動作します。 – sanrodari

+1

私は最終的に問題を解決することができました。 'post_system'でフックを使用しようとすると、コントローラ内でリダイレクトを行い、別のコントローラを呼び出すため、POSTフォームの送信には機能しません。したがって、フックが呼び出された最後のコントローラだけが呼び出されます。 フックポイント 'post_controller_constructor'を使ってこの問題を解決しました。したがって、リクエストがコントローラによって処理され、リクエストが別のコントローラにリダイレクトされると、両方のコントローラでフックが呼び出されました。 – sanrodari

答えて

0

私はCodi​​gniter 2.1を使用していますが、それは動作します..しかし、私のフックファイルが「MainLoader」と呼ばれると、次のように開始されている:私はそれは私はあなたが逃したと思います:-)

0

役に立てば幸い

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class MainLoader { 

    public function mainLoader() 
    { 

     $CI =& get_instance(); 

     echo 'This should be outputed'; 

     //Whatever you want to do here 

    } 

配列変数の隣の[]。 は、あなたのコードでは、書かれた:

$hook['post_controller_constructor'] = array(
    'class' => 'Authorization', 
    'function' => 'authorize', 
    'filename' => 'authorization.php', 
    'file_path' => 'hooks' 
); 

は、私はそれがこのようにすべきだと思います。[]$フック[ 'post_controller_constructor']変数へ

$hook['post_controller_constructor'][] = array(
    'class' => 'Authorization', 
    'function' => 'authorize', 
    'filename' => 'authorization.php', 
    'file_path' => 'hooks' 
); 

ノート。

このヘルプが必要です。ありがとうございます..

関連する問題