Files
fdesk/app/bootstrap/Audit.php
T

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(), []);
});
}
}