2011-06-15 52 views
2

我想覆蓋活動記錄類(至少它的一些功能)。我在我的「應用程序」文件夾中的名爲「數據庫」的文件夾中創建了一個名爲spj_DB_active_rec.php的文件,但它不起作用。代碼點火器覆蓋DB活動記錄

類名是spj_DB_active_record

<?php 
class spj_DB_active_record extends CI_DB_active_record { 

    function update($table = '', $set = NULL, $where = NULL, $limit = NULL) { 
     if (is_array($set) && empty($set['modified'])) { 
      $this->load->helper('date'); 
      $data['modified'] = date('Y-m-d H:i:s',now()); 
     } 

     log_message('debug','TEST UPDATE '.date('Y-m-d H:i:s',time())); 

     return parent::update($table, $set, $where, $limit); 
    } 

    function insert($table = '', $set = NULL) { 
     if (is_array($set) && empty($set['modified'])) { 
      $this->load->helper('date'); 
      $data['modified'] = date('Y-m-d H:i:s',now()); 
     } 
     if (is_array($set) && empty($set['created'])) { 
      $this->load->helper('date'); 
      $data['created'] = date('Y-m-d H:i:s',now()); 
     } 

     log_message('debug','TEST INSERT '.date('Y-m-d H:i:s',time())); 
     return parent::insert($table, $set); 
    } 
} 
+0

你能分享一些有關不起作用的信息嗎?你期望做什麼? – hakre 2011-06-15 11:31:06

+0

你在代碼中看到它。它應該添加「修改」和「創建」插入/更新,如果他們還沒有被設置。首先它應該記錄測試信息。 – 2011-06-15 11:35:09

+0

你怎麼稱呼這個文件? – 2011-06-15 11:37:17

回答

3

也許那纔是新聞給你,但笨2.0不正式支持擴展核心的Active Record類。所以你想要做的是(不幸的是)通過放置從磁盤某處擴展的類來「不可能」。

但您可以試試workaround

+0

這是一個[在Codeigniter中擴展DB活動記錄類的較不古怪的方法](http://mineth.net/blog/extending-codeigniter-active-record-the-non-hacky-way/)。 – steampowered 2012-11-12 22:25:43