【问题标题】:Why is my Codeigniter extended library function not being called?为什么我的 Codeigniter 扩展库函数没有被调用?
【发布时间】:2012-09-10 20:23:59
【问题描述】:

我已扩展 CI_Session 类,以便根据此论坛帖子 (http://codeigniter.com/forums/viewthread/138823/) 处理 Ajax 调用的 set_flashdata() 问题,但由于某种原因,我的 sess_update() 函数从未被调用。我在我的扩展构造函数中调用了 log_message(),它确实被调用了。

为什么当我执行 $this->session->sess_update() 时没有调用我的 sess_update() 函数?

会话库已添加到 autoload.php 配置文件中,我的扩展库位于 /application/libraries。

class MY_Session extends CI_Session 
{

  public function MY_Session()
  {
    log_message('debug', 'MY_Session construct');
    parent::__construct();
  }

/**
* Update an existing session
*
* @access    public
* @return    void
*/
    function sess_update()
    {
       // skip the session update if this is an AJAX call!
       if ( !IS_AJAX )
       {
           log_message('debug', 'NOT an AJAX request');
           parent::sess_update();
       } else {
           log_message('debug', 'AJAX request');
       }
    } 

}

我也将它添加到我的 constants.php 文件中

// Define Ajax Request
define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');

【问题讨论】:

    标签: ajax session codeigniter-2


    【解决方案1】:

    将您的课程添加到 application/core 并查看它是否有效

    【讨论】:

    • 试过了,但没有成功。它肯定会根据构造函数中的 log_message() 加载 /application/libraries 文件夹中的扩展类...只是不调用 sess_update() 函数:s
    【解决方案2】:

    首先,如果您想扩展任何模型/控制器/加载器基类等,您应该使用'MY_'application/core 定位您的类。

    其次,这可以给出一个思路:

    my_session.php

    include_once(BASEPATH.'libraries/Session.php');
    
    class MY_Session extends CI_Session{
          public function __construct(){
              parent::__construct(); 
              ....
          }
        ....
    }
    

    在您的控制器中:

    $this->load->library('MY_Session');
    $this->my_session->set_userdata() // or sth
    

    【讨论】:

      【解决方案3】:

      我假设它是第 3 版。 如果是这样的话, 将 MY_Session.php 放入

      libraries/Session/MY_Session.php
      

      User_Guide 对大多数问题都有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-15
        • 1970-01-01
        • 1970-01-01
        • 2017-10-25
        • 2016-10-20
        • 2017-02-17
        相关资源
        最近更新 更多