Codeigniter - 每个控制器的挂钩

mos*_*sid 1 codeigniter

我在我的CI应用程序"pre_controller hook"中使用了钩子.
但问题是每次向任何其他控制器发出请求时都会激活挂钩,即使是我不想激活挂钩的控制器.可以只为一个控制器启用挂钩吗?就像playframework中的@Before注释一样.
提前致谢.

Hai*_*ood 8

为什么不将该逻辑放在控制器的构造函数中?

如果您有多个控制器希望共享此功能,只需CI_Controller使用新类扩展application/core/MY_Controller.php并将功能放入其中,然后在控制器中让它们扩展该类而不是默认的CI_Controller(您可以添加多个类)MY_Controller.php)!

你放在override类中的任何东西都会MY_Controller.php在控制器其余部分的代码之前执行,模拟pre_controller钩子.

只记得调用父构造函数:

function __construct(){
   parent::__construct();
}
Run Code Online (Sandbox Code Playgroud)

有关扩展核心的更多信息,请参阅手册:https://www.codeigniter.com/user_guide/general/core_classes.html