示例#1
0
 /**
  * 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');
 }
示例#2
0
 public function map(DbRecord $record)
 {
     return $this->map[$record->getPrimaryKey()] = $record;
 }