public function doDelete() { Db::getDriver()->beginTransaction(); $parameters = $this->getQueryParameters(false); if ($parameters === null) { $primaryKey = $this->wrapper->getDescription()->getPrimaryKey(); $parameters = $this->getQueryParameters(); $data = $this->wrapper->getData(); $keys = []; foreach ($data as $datum) { if ($this->dataOperations->isItemDeletable($primaryKey, $datum)) { $keys[] = $datum[$primaryKey[0]]; } } $parameters->addFilter($primaryKey[0], $keys); $this->adapter->delete($parameters); } else { $this->adapter->delete($parameters); } Db::getDriver()->commit(); $this->resetQueryParameters(); }