31 lines
1000 B
PHP
31 lines
1000 B
PHP
<?php
|
|
|
|
namespace app\bootstrap;
|
|
|
|
use Webman\Bootstrap;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use app\common\audit\AuditBuffer;
|
|
|
|
class Audit implements Bootstrap
|
|
{
|
|
public static function start($worker)
|
|
{
|
|
Model::created(function ($model) {
|
|
AuditBuffer::instance()->pushModelChange($model->getTable(), $model->getKey(), [], $model->getAttributes());
|
|
});
|
|
Model::updated(function ($model) {
|
|
$dirty = $model->getDirty();
|
|
if (!$dirty) return;
|
|
$old = []; $new = [];
|
|
foreach ($dirty as $k=>$v) {
|
|
$old[$k] = $model->getOriginal($k);
|
|
$new[$k] = $model->getAttribute($k);
|
|
}
|
|
AuditBuffer::instance()->pushModelChange($model->getTable(), $model->getKey(), $old, $new);
|
|
});
|
|
Model::deleted(function ($model) {
|
|
AuditBuffer::instance()->pushModelChange($model->getTable(), $model->getKey(), $model->getAttributes(), []);
|
|
});
|
|
}
|
|
|
|
} |