Heim >Backend-Entwicklung >PHP-Tutorial >CI怎么通过hook获取控制器和方法名?

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

WBOY
WBOYOriginal
2016-06-06 20:07:14995Durchsuche

需要通过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>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn