BaseModel.php
abstract class BaseModels extends Model implements Auditable {
public function needAudit() {
return true;
}
public function __construct() {
static::deleting(function ($m) {
if ($m->needAudit() === true && !app()->runningInConsole() && defined('IN_ADMIN') && IN_ADMIN === true) {
$admin = \Auth::guard('admin')->user();
AuditRecords::addLog($admin->username . ' deleted ' . $m->getAuditDescription(), 'delete_' . $m->table, AuditRecords::OPERATION_DELETE, $m);
}
});
static::created(function ($m) {
if ($m->needAudit() === true && !app()->runningInConsole() && defined('IN_ADMIN') && IN_ADMIN === true) {
$admin = \Auth::guard('admin')->user();
AuditRecords::addLog($admin->username . ' created ' . $m->getAuditDescription(), 'create_' . $m->table, AuditRecords::OPERATION_CREATE, $m);
}
});
static::updated(function ($m) {
if ($m->needAudit() === true && !app()->runningInConsole() && defined('IN_ADMIN') && IN_ADMIN === true) {
if ($m->exists() && $m->isDirty()) {
$admin = \Auth::guard('admin')->user();
AuditRecords::addLog($admin->username . ' edited ' . $m->getAuditDescription(), 'edit_' . $m->table, AuditRecords::OPERATION_UPDATE, $m);
}
}
});
}
}
Country.php
class Country extends BaseModels {
public function getAuditDescription() {
return getClassName($this) . ' ' . $this->country_name_en;
}
const STATUS_INACTIVE = 0;
const STATUS_ACTIVE = 1;
protected $table = 'country';
}
Auditable.php
<?php
namespace App\Models;
interface Auditable {
public function getAuditDescription();
public function needAudit();
}
trying to do some auto audit log for all admin route, using the laravel eloquent event deleting, created and updated, but \App\Models\Country.php log for 3 times on every save, \App\Models\Bank.php log for 7 times on every save, result in the attach image
via Chebli Mohamed

Aucun commentaire:
Enregistrer un commentaire