olegf13/yii2-mongorevision-behavior

为 Yii 2 的 MongoRevision 行为

0.2.0 2016-07-08 09:46 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:52:57 UTC


README

此行为为任何 ActiveRecord 对象自动创建 MongoDB 集合中的修订版本。

这意味着,扩展将在 ActiveRecord 对象更新后自动保存其“上一个版本”。

因此,您可以存储和跟踪所有数据更改的历史记录。

详细来说,MongoRevision 行为将收集“旧”AR 对象属性,将相应的值填充到 revisionOwnerIdrevisionOwnerModelrevisionDaterevisionUser 属性中;然后将生成的 AR 对象修订版存储在特定的 MongoDB revision 集合中。

行为在关联的 AR 对象更新后调用(EVENT_AFTER_UPDATE)。

安装

此扩展需要 Yii 2 的 MongoDB 扩展

安装此扩展的首选方式是通过 composer

运行以下命令之一

php composer.phar require --prefer-dist olegf13/yii2-mongorevision-behavior "*"

或者

"olegf13/yii2-mongorevision-behavior": "*"

将以下内容添加到您的 composer.json 文件的 require 部分。

使用方法

要使用 MongoRevisionBehavior,将以下代码插入到您的 ActiveRecord 类中

use olegf13\mongorevision\MongoRevisionBehavior;
// ...
public function behaviors()
{
    return [
        MongoRevisionBehavior::className(),
    ];
}

如果您的 MongoDB 连接名称不同或您想使用不同的集合或属性名称,您可以像以下那样配置行为属性

use olegf13\mongorevision\MongoRevisionBehavior;
// ...
public function behaviors()
{
    return [
        [
            'class' => MongoRevisionBehavior::className(),
            'mongoConnectionName' => 'mongodb',
            'mongoCollection' => 'revision',
            'revisionOwnerIdAttribute' => 'ownerId',
            'revisionOwnerModelAttribute' => 'ownerModel',
            'revisionDateAttribute' => 'revisionDate',
            'revisionUserAttribute' => 'revisionUser',
        ],
    ];
}