Revisionable: package to log who did what and when in Laravel Models

A short review of a package which is hugely popular but I've found it only recently. Quite a useful case - if you want to log all the changes to your data - who changed what and when, it's pretty simple with Revisionable. The usage is pretty simple:
  • Install the package
  • Run its migrations - basically it's one table called "revisions"
  • Add some code into a model you want to "follow"
Here's my example of Model:
namespace App;

use Illuminate\Database\Eloquent\Model;

class Book extends Model
{
    use \Venturecraft\Revisionable\RevisionableTrait;

    protected $fillable = ['title', 'description'];

    public static function boot()
    {
        parent::boot();
    }

}
And basically, that's it. Whenever someone updates a database entry with Eloquent, like this:
    $book = \App\Book::find(1);
    $book->update(['title' => 'bbb']);
You will get a new entry in database table revisions. And then you can create a separate view to show that log more conveniently. Of course, there are a lot of additional settings and functionality, like for example:
  • History limit = X. Stop tracking revisions after 500 changes have been made
  • $revisionCleanup = true; //Remove old revisions (works only when used with $historyLimit)
  • Storing soft deletes
  • Storing creations or not
In general, a really good package by Chris Duell. And I recommend you read full documentation on Github page here - a lot of interesting small things there. Update: there's another similar package by Marcel Pociot - called Versionable - check it out too.

No comments or questions yet...

Like our articles?

Become a Premium Member for $129/year or $29/month
What else you will get:
  • 57 courses (1055 lessons, total 46 h 42 min)
  • 78 long-form tutorials (one new every week)
  • access to project repositories
  • access to private Discord

Recent Premium Tutorials