nh / trackable
使 Laravel 模型可追踪
1.7.1
2023-01-19 11:58 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
]