albertborsos / historizer
此包的最新版本(dev-master)没有可用的许可证信息。
独立于模型表结构记录模型的历史
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;
}
}