2011-12-10 99 views
0

我已經能夠在config.php鉤不笨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

我使用Codigniter 2.1和它的作品..但我的鉤子文件被稱爲「MainLoader」,並開始像這樣:

<?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 

    } 

我希望它能幫助:-)

0

我想你錯過數組變量旁邊的[]。 在你的代碼,它寫:

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

我想應該是這樣的:

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

注意[]旁邊$鉤[ 'post_controller_constructor']變量。

希望得到這個幫助。謝謝..