/** * Delete row * @throws Exception * @return void */ public function delete(DbRecord $record) { if (!$record->isRecordExisting()) { throw new \Nette\InvalidStateException("Only existing row can be deleted."); } $engine = $this->getConnection(); if (!$engine->inTransaction()) { $doCommit = true; $engine->begin(); } $this->onBeforeDelete($record); $engine->delete($record::table())->where('%and', $record->getPrimaryCondition())->execute(); $this->onAfterDelete($record); if (isset($doCommit)) { $engine->commit(); } // set state $record->setState($record::STATE_DELETED); // set action / pravdepodobne probehla v poradku $record->lastAction('d'); }
public function map(DbRecord $record) { return $this->map[$record->getPrimaryKey()] = $record; }