当前位置:Gxlcms > PHP教程 > CI怎么通过hook获取控制器和方法名?

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

时间:2021-07-01 10:21:17 帮助过:24人阅读

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

更新时间2016年5月29日 20:20:55
最后决定重新挂在CodeIgniter.php里面。请看图。

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

但是就报错了

回复内容:

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

更新时间2016年5月29日 20:20:55
最后决定重新挂在CodeIgniter.php里面。请看图。

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

但是就报错了

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

$class = $this->router->fetch_class();
$method = $this->router->fetch_method();

人气教程排行