php - CodeIgniter: Hook (pre_controller)加载助手

标签 php codeigniter

我正在尝试在我的 pre_controller Hook 中加载 cookie 助手,以便在我们的网站上实现“记住我”功能。我认为用 $ci =& get_instance(); 创建 CI 对象的实例将允许我访问加载助手,但事实并非如此。

想法?

 $ci =& get_instance();
 $ci->load->helper('cookie');
 // does not load

最佳答案

post_controller_constructor 的问题是它在构造函数之后运行(很有趣),如果您对很多事情使用 Controller 构造函数,这可能是个问题。

如果这对您来说不是问题(您的助手不会影响构造函数中运行或加载的任何内容),那么公平,如果这是一个问题,您有两个解决方案。

  1. 将您的代码放在MY_Controller 中而不是钩子(Hook)中
  2. 创建 MY_Controller 并添加自定义 Hook 点。

    class MY_Controller extends Controller
    {
    
        function MY_Controller()
        {
            parent::Controller();
            $GLOBALS['EXT']->_call_hook('pre_controller_constructor');
        } 
    }
    

请注意,如果您使用的是 CodeIgniter 3.0 或更高版本,函数 _call_hook 已重命名为 call_hook

关于php - CodeIgniter: Hook (pre_controller)加载助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2196559/

相关文章:

php - 静态加密数据

php - Magento Enterprise Controller 覆盖

php - 常量文件中的 codeigniter base_url

php - 如何在 mySQL 数据库中正确存储 textarea 中的换行符?

php - sql - 选择 bool 值严格为 true

php - XML 错误 : Only one top level element is allowed

php - 如何在 codeigniter 模型中打印 SQL 语句

php - 如何编写 htaccess 文件,更改 URL

php - codeigniter查询数据库错误

php - 查找 json 数组中的对象数