Ignoring Models
You can exclude models from being tracked in various ways:
Via ignore array
Simply add the model class to the ignore array in the config/aware.php file.
IMPORTANT
Note that this will override all other methods of ignoring tracking.
php
'ignore' => [
App\Models\User::class,
],Via ModelIgnoresTracking trait
Simply use the ModelIgnoresTracking trait in the model class to exclude model from all events.
php
<?php
namespace App\Models;
use CharlGottschalk\Changes\Traits\ModelIgnoresTracking;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use ModelIgnoresTracking, SoftDeletes;
...Via ignoreTracking() method
Simply add a public ignoreTracking() method to any model.
Return true to exclude from tracking, false otherwise.
IMPORTANT
Note that this will override ignoreTrackingEvents() method.
php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use SoftDeletes;
public function ignoreTracking(): bool
{
return true;
}
...Via ignoreTrackingEvents() method
You can exclude tracking for specific events like created, updated, deleted, restored and forceDeleted by simply adding a public ignoreTrackingEvents() method to any model and returning an array with the events to ignore.
php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use SoftDeletes;
public function ignoreTrackingEvents(): array
{
return [
'create',
'restore',
];
}
...