首页 >后端开发 >php教程 >CI怎么通过hook获取控制器和方法名?

CI怎么通过hook获取控制器和方法名?

WBOY
WBOY原创
2016-06-06 20:07:14993浏览

需要通过hook来获取控制器和方法名,我把钩子挂在了CI_Controller在钩子里使用
$this->router->class会报错,我想到的解决办法是使用$_SERVER ,如何使用router而不会报错呢?

更新时间2016年5月29日 20:20:55
最后决定重新挂在CodeIgniter.php里面。请看图。
CI怎么通过hook获取控制器和方法名?
CI怎么通过hook获取控制器和方法名?

<code>class Fun_Log{
    public function fun_action(){
        var_dump($this->router);
    }    
}
</code>

但是就报错了
CI怎么通过hook获取控制器和方法名?

回复内容:

需要通过hook来获取控制器和方法名,我把钩子挂在了CI_Controller在钩子里使用
$this->router->class会报错,我想到的解决办法是使用$_SERVER ,如何使用router而不会报错呢?

更新时间2016年5月29日 20:20:55
最后决定重新挂在CodeIgniter.php里面。请看图。
CI怎么通过hook获取控制器和方法名?
CI怎么通过hook获取控制器和方法名?

<code>class Fun_Log{
    public function fun_action(){
        var_dump($this->router);
    }    
}
</code>

但是就报错了
CI怎么通过hook获取控制器和方法名?

已解决。原来问题原因起在hooks.php里$hook['这里必须是CI的挂载点'],之前还以为这个名称可以自己定,然后在哪里把这个hook挂上去。所以才报错。另外需要先使用$this->CI = &get_instance();来获取CI的对象,不然调用不了CI自带的类

<code>$class = $this->router->fetch_class();
$method = $this->router->fetch_method();</code>
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn