good-system/laravel-model-history

该包最新版本(0.0.2)没有可用的许可证信息。

0.0.2 2019-03-18 02:16 UTC

This package is auto-updated.

Last update: 2024-09-18 18:24:28 UTC


README

安装

composer require good-system/laravel-model-history
composer migrate

使用

使用通用 ModelObserver

如果模型观察者只需要对“创建”和“更新”进行日志记录/记录,只需将以下内容添加到您的服务提供者类中

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        Donation::observe(\GoodSystem\ModelHistory\ModelObserver::class);
    }
}

则会在数据库表 model_history 中记录两个模型操作

  • 新建捐款创建
  • 捐款更新

使用 Trait ModelChangeEventTraits

如果您的模型观察者需要观察额外的模型事件,但对于“创建”和“更新”事件,模型历史记录/记录是唯一需要的功能,可以将 trait ModelChangeEventTraits 添加到观察者类中,如下所示

class YOUR_MODEL_Observer
{
    use \GoodSystem\ModelHistory\ModelChangeEventTraits;

    // other model events such as deleted, saved, etc.
}

直接使用 ModelFieldHistory 模型静态方法

模型类 ModelFieldHistory 提供了两个额外的方法

  • forModelCreated() - 记录新创建的模型
  • forFieldChanges() - 记录模型中做出的更改

如果您的模型观察者的“创建”或“更新”事件需要执行历史记录/记录,以及其他操作,可以直接从观察者调用这两个方法,如下所示

class YOUR_MODEL_Observer
{
    public function updated(YOUR_MODEL $modelObject)
    {
        ModelHistory::forFieldChanges(auth()->user(), $modelObject)->save();
        // Other things that need to be done upon model record update
    }
    
    public function created(YOUR_MODEL $modelObject)
    {
        ModelHistory::forModelCreated(auth()->user(), $modelObject)->save();
        // Other things that need to be done upon model record creation
    }
}

其他用法

目前没有其他用法。请注意,数据库表不仅限于容纳这两个更改。