nh/trackable

使 Laravel 模型可追踪

1.7.1 2023-01-19 11:58 UTC

This package is auto-updated.

Last update: 2024-09-19 17:22:37 UTC


README

通过 composer 安装此包

composer require nh/trackable

发布可追踪的翻译和模型

php artisan vendor:publish --tag=trackable

为了使模型可追踪,将 Trackable 特性添加到您的模型中: 要检索模型的追踪记录 => $post->tracks 要检查模型是否有任何追踪记录 => $post->hasTracks()

use Nh\Trackable\Traits\Trackable;

use Trackable;

模型可用的事件有

  • 创建
  • 更新
  • 删除
  • 软删除
  • 恢复
  • 强制删除
  • 保存
  • 更改

您可以通过日期和 ID 对模型追踪记录进行排序来检索追踪记录

$model->tracks;

或者您也可以检索最新的追踪记录

$model->latestTrack;

模型

您可以在每个追踪记录中检索多个信息: 您可以通过 trackable 配置文件自定义翻译、颜色和图标

$track->event_name;       // The translated name of the event
$track->event_color;      // The color of the event
$track->event_icon;       // The icon of the event
$track->model;            // The clean model name
$track->model_name;       // The translated model name
$track->relation_model;   // The clean relation model name
$track->relation_name;    // The translated relation model name
$track->relation_icon;    // The icon of the relation model
$track->username;         // The username
$track->time;             // The formated time
$track->formated // Return 'Updated <b>3m ago</b> by <b>Natacha</b>'

添加追踪记录

您可以为模型添加自定义追踪记录

$model->addTrack('my-event', $relationModel, $numberRelationModelAffected, 'My comment')

事件监听器

您可以通过使用监听器 AddTrack 来追踪某些事件。

将以下行添加到您的 App\Providers\EventServiceProvider.php 中的 $listen 属性

您的事件应该返回

  • $event->name 作为事件名称(例如:created)
  • $event->model 作为被追踪的模型
  • $event->relation 作为模型关系(例如:App\Models\Role)
  • $event->number 作为受事件影响的项目数量(模型或关系)
MyCustomEvent::class => [
    \Nh\Trackable\Listeners\AddTrack::class
]