/** * Delete record * @param IRecord record */ public function delete(IRecord $record) { try { $record->onBeforeDelete($record); $this->getDb()->delete($this->table)->where($record->getValues($this->getConfig()->getPrimaryColumns()))->execute(); // set state $record->setState(IRecord::STATE_DELETED); $record->onAfterDelete($record); } catch (Exception $e) { throw new \ModelException("Delete failed. " . $e->getMessage(), $e->getCode(), $e); } }