yepes/yii2-model-log-behavior

A simple log behavior for your Yii2 models.

Installs: 292

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 1

Open Issues: 0

Type:yii2-extension

1.0.17 2024-12-19 16:35 UTC

This package is auto-updated.

Last update: 2025-04-19 17:31:38 UTC


README

Simple extension to log every change made to any model.

Installation

Install via composser

composer require yepes/yii2-model-log-behavior

Apply migrations:

./yii migrate/up --migrationPath=@vendor/yepes/yii2-model-log-behavior/migrations

Configure the behavior

public function behaviors()
{
    return [
        \goltratec\log\LogBehavior::className()
    ];
}

Ignoring attributes

In the model, just define an attribute $logIgnoredAttributes which is an array of string, representings the properties you wish to ignore.

public $logIgnoredAttributes = ['attribute1', 'attribute2'];

If $logIgnoredAttributes is not defined, every attribute will be logged.

Ignore log

To ignore the creation of a log line, simply add ignoreLog in your model and set it to true:

Your model:

public $ignoreLog = false;

Your action you don't want to log:

$myModel->ignoreLog = true;
$myModel->save();

TODO

Right now, logs are just saved in the database, in a table named goltratec_log

Maybe we should:

  • create a simple UI to view the logs.
  • some method to view the log of a particular model.
  • some way to restore a model to a particular log.