如何在Codeigniter中设置规则以挂钩以排除预控制器规则上的特定控制器?

时间:2018-04-28 09:35:45

标签: php codeigniter-3

我试图通过在codeigniter中挂钩来设置规则,但现在我处于这样一种情况,我需要从pre_controller中排除一个控制器,除了所有其他控制器将遵循挂钩文件的pre_controller规则。 我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

问题是您正在使用pre_controller挂钩。此时,您无法使CI实例访问基类。它们仅由引导文件(system/core/CodeIgniter.php)实例化为本地类变量,尚未分配(system/core/Controller.php)到CI超级对象。

当您在钩子中手动加载路由器类时,它应该可以工作(就像引导程序文件一样)。

public function before_controller_hook()
{
    $RTR =& load_class('Router');

    if ($RTR->class != "ControllerYouDontWant"){
        // ... the magic
    }
}

我希望这会对你有所帮助。