Exemplo n.º 1
0
 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();
 }