Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

LaravelDaily/Laravel-Support-Ticketing

294 stars
2 code files
View LaravelDaily/Laravel-Support-Ticketing on GitHub

app/Traits/Auditable.php

Open in GitHub
use App\AuditLog;
use Illuminate\Database\Eloquent\Model;
 
trait Auditable
{
public static function bootAuditable()
{
static::created(function (Model $model) {
self::audit('created', $model);
});
 
static::updated(function (Model $model) {
self::audit('updated', $model);
});
 
static::deleted(function (Model $model) {
self::audit('deleted', $model);
});
}
 
protected static function audit($description, $model)
{
AuditLog::create([
'description' => $description,
'subject_id' => $model->id ?? null,
'subject_type' => get_class($model) ?? null,
'user_id' => auth()->id() ?? null,
'properties' => $model ?? null,
'host' => request()->ip() ?? null,
]);
}
}

app/Ticket.php

Open in GitHub
use App\Traits\Auditable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia
 
class Ticket extends Model implements HasMedia
{
use SoftDeletes, InteractsWithMedia, Auditable;
//
}

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.