代码点火器覆盖数据库活动记录

时间:2011-06-15 11:28:38

标签: php database codeigniter override

我想覆盖Active Record类(至少它的一些功能)。我在“application”文件夹中的一个名为“database”的文件夹中创建了一个名为spj_DB_active_rec.php的文件,但它不起作用。

类名是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);
    }
}

1 个答案:

答案 0 :(得分:3)

可能这对你来说是新闻,但CodeIgniter 2.0并没有正式支持扩展核心Active Record类。所以你想要做的是(不幸的是)通过在磁盘上的某个地方放置一个类来“不可能”。

但你可以尝试这个workaround