kirillemko / yii2-activerecord-history
此包最新版本(2.1.2)的许可证信息不可用。
保存ActiveRecord模型更改历史
2.1.2
2024-08-22 05:18 UTC
Requires
- yiisoft/yii2: *
README
安装
通过以下方式安装此扩展:通过composer。
运行以下命令之一:
composer require kirillemko/yii2-activerecord-history
或
"kirillemko/yii2-activerecord-history": "*"
将以下内容添加到您的composer.json文件的要求部分。
运行迁移
php yii migrate --migrationPath=@vendor/kirillemko/yii2-activerecord-history/migrations
使用
行为允许编写模型更改历史。只需将其添加到模型中的behaviors方法即可
public function behaviors() {
return [
...
[ 'class' => ActiveRecordHistoryBehavior::class ]
以下配置参数可能可用:
Поставить в true, если при создании модели нужно записать все поля в историю.
В противном случае пишется только сам факт создания модели
'saveFieldsOnInsert' => false
Массив полей, изменение которых не нужно писать.
Например при использовании 'created_at'
'ignoreFields' => []
Конфигурация отслеживаемых евентов.
Можно отключить евент, если не нужно писать
'watchInsertEvent' => true,
'watchUpdateEvent' => true,
'watchDeleteEvent' => true
此外,行为还提供了一种获取更改历史的方法
$someModel->getChangesHistory($sortAsc = true);
将返回一个包含kirillemko\activeRecordHistory\models\ActiveRecordHistory对象的数组
在将对象转换为数组时,将添加两个额外的属性type_full_name和field_full_name,以便于在客户端使用。示例
{
"id": 10,
"user_id": 1,
"type": 2,
"model": "App\\domain\\ACL\\models\\AclGroupsPermissions",
"model_id": "21",
"field_name": "desc",
"old_value": "Описание объекта",
"new_value": "Новое описание объекта",
"created_at": 1625908836,
"field_full_name": "Описание",
"type_full_name": "Редактирование"
}
在此对象中,field_full_name属性通过从目标模型的attributesLabel获取人类名称来实现
待办事项
为kirillemko\activeRecordHistory\models\ActiveRecordHistory对象添加额外的type_full_name属性,通过i18n而不是硬编码来实现
致谢
作者:Kirill Emelianenko
电子邮件:kirill.emko@mail.ru