46 lines
1.2 KiB
PHP
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());
|
|
});
|
|
}
|
|
}
|
|
}
|