Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Model Logger

Tracking any changes to model into its own table.

Table Of Contents

Installation

install the package

composer require dekate/model-logger

publish config and migration

php artisan vendor:publish --tag=model-logger

Usage

use Dekate\ModelLogger\LogModel Trait into your model

ex.

<?php

namespace App\Models;

use Dekate\ModelLogger\LogModel;
use Illuminate\Database\Eloquent\Model;

class MyModel extends Model
{
  use LogModel;

  /** The rest of the code */

}

To disable log for specific operation in a single model. Add protected $disableLog to your model. Valid values are string composed of C (create), U (update), and D (delete).

class YourModel extends Model
{
  use LogModel;

  // disable Create log
  protected $disableLog = "C";
}
class YourModel extends Model
{
  use LogModel;

  // disable Create Delete
  protected $disableLog = "CD";
}

Gotchas

Relationship

The sync() operation in a relation cannot be tracked with this trait. Thus, we're providing syncWithRelation as an alternative.

/** You can change */
$myModel->myRelation()->sync([])

/** To */
$myModel->syncWithRelation('myRelation', []);

User Id

Responsible user for the changes are tracked with auth()->id(). So, we're unable to track the user if auth it's empty or not being used.

What we cannot track

  • Anything with mass operation except sync as explained above such as insert or delete with query builder.
  • Any changes with raw queries

About

table changes logger

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages