albertborsos/historizer

此包的最新版本(dev-master)没有可用的许可证信息。

独立于模型表结构记录模型的历史

安装: 8

依赖项: 0

建议者: 0

安全: 0

星星: 0

关注者: 3

分支: 0

公开问题: 0

类型:yii-extension

dev-master 2014-04-21 08:31 UTC

This package is auto-updated.

Last update: 2024-09-08 06:31:57 UTC


README

一个简单的扩展,用于记录模型的变化历史。独立于模型表结构,因为它将属性存储在一个字段的JSON格式中。

安装步骤

1.) 通过composer

    "require":{
        "albertborsos/historizer": "dev-master",
    }

2.) 在datas文件夹中通过初始化模式创建历史表

3.) 然后,将此行添加到您的protected/config/main.php

    'import' => array(
        'application.vendor.albertborsos.historizer',
    ),

使用方法

在模型类中修改beforeSave()beforeDelete()方法。如果新属性与旧属性不同,它将自动保存旧模型的属性。如果保存成功,historize()方法返回值是true,否则是false。

public function beforeSave(){
        if (parent::beforeSave()){
            if (!$this->isNewRecord){
               if (AHistorizer::historize($this)){
                   // if attributes are modified, update fields
                   $this->date_update = date('Y-m-d H:i:s');
                   $this->user_update = Yii::app()->user->id;
               }
            }else{
               $this->user_create = Yii::app()->user->id;
               $this->date_create = date('Y-m-d H:i:s');
            }
            return true;
        }else{
            return false;
        }
    }

    public function beforeDelete() {
        if (parent::beforeDelete()){
            AHistorizer::historize($this);
            return true;
        }else{
            return false;
        }
    }