CodeIgniter Hooks for Active Record库

时间:2013-08-05 15:17:54

标签: php codeigniter hook

我需要一些帮助来理解CodeIgniter的钩子逻辑,以使代码适应我的需要。

页面:https://www.codeigniter.com/user_guide/general/hooks.html

事实上,我不得不修改MySQL的数据库驱动程序:

function _from_tables($tables)
{
    if ( ! is_array($tables))
    {
        $tables = array($tables);
    }
return '('.implode(', ', $tables).')';
}

到此:

function _from_tables($tables)
{
    if ( ! is_array($tables))
    {
        $tables = array($tables);
    }
return implode(', ', $tables);
}

我让这个mod使用Active Record库来使用UNION查询。

当我更新核心系统时,有人可以帮我勾选以防止我的修改被覆盖吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以在CodeIgniter Wiki - Extending Database Drivers

上找到有关扩展数据库驱动程序的说明
  

解决方案分为3个简单步骤:

     

1)通过创建文件MY_Loader.php来扩展您的loader类。把它   进入应用程序路径中的libraries目录(或者如果你是   使用CI 2.x.x然后将其放入application \ core \ path):

     

2)将以下功能添加到MY_Loader类:

     

3)创建您命名的数据库驱动程序扩展类   MY_DB_mysql_driver.php(或者用mysql部分代替什么   您使用的驱动程序 - 也为下面代码中的类名执行此操作!)。   将此文件也放在应用程序库目录中:

您的自定义数据库驱动程序将如下所示

class MY_DB_mysql_driver extends CI_DB_mysql_driver {

  function __construct($params){
    parent::__construct($params);
    log_message('debug', 'Extended DB driver class instantiated!');
  }

  function _from_tables($tables)
  {
      if ( ! is_array($tables))
      {
          $tables = array($tables);
      }
      return implode(', ', $tables);
  }

}