Files

46 lines
1.2 KiB
PHP

<?php
namespace App\Traits;
use App\Services\ActivityLogger;
trait LogsActivity
{
/**
* Tên module hiển thị trong log. Override nếu muốn tên khác.
*/
protected function getLogName(): string
{
return class_basename(static::class);
}
/**
* Các field không ghi vào log. Override để thêm field riêng của model.
*/
protected function getLogHiddenFields(): array
{
return [];
}
public static function bootLogsActivity(): void
{
static::created(function ($model) {
app(ActivityLogger::class)->logCreated($model, $model->getLogName());
});
static::updated(function ($model) {
app(ActivityLogger::class)->logUpdated($model, $model->getLogName());
});
static::deleted(function ($model) {
app(ActivityLogger::class)->logDeleted($model, $model->getLogName());
});
if (in_array('Illuminate\Database\Eloquent\SoftDeletes', class_uses_recursive(static::class))) {
static::restored(function ($model) {
app(ActivityLogger::class)->logRestored($model, $model->getLogName());
});
}
}
}