/** * Audits an UPDATE operation * * @param \Phalcon\Mvc\ModelInterface $model * @return boolean */ public function auditAfterUpdate(ModelInterface $model) { $changedFields = $model->getChangedFields(); if (count($changedFields) == 0) { return null; } //Create a new audit $audit = $this->createAudit('U', $model); if (is_object($audit)) { //Date the model had before modifications $originalData = $model->getSnapshotData(); $details = []; $random = new Random(); foreach ($changedFields as $field) { $auditDetail = new AuditDetail(); $auditDetail->setId($random->uuid()); $auditDetail->setFieldName($field); $auditDetail->setOldValue($originalData[$field]); $newValue = $model->readAttribute($field) ?: 'empty'; $auditDetail->setNewValue($newValue); $details[] = $auditDetail; } $audit->details = $details; if (!$audit->save()) { ModelBase::saveLoger($audit->getMessages()); } } }
public function uuid() { return parent::uuid(); }