public function preUpdateCallback($data) { if (isset($this->model->getDescription()->getFields()['updated'])) { $data['updated'] = date('Y-m-d H:i:s'); } return $data; }
public function run($field, $data) { $test = []; foreach ($field['name'] as $name) { $test[$name] = isset($data[$name]) ? $data[$name] : null; } if ($this->mode == \ntentan\nibii\DataOperations::MODE_UPDATE) { $primaryKeyFields = $this->model->getDescription()->getPrimaryKey(); $keys = []; foreach ($primaryKeyFields as $name) { $keys[$name] = $data[$name]; } $testItem = $this->model->createNew()->fetchFirst($test); $intersection = array_intersect($testItem->toArray(), $keys); if (!empty($intersection)) { return true; } } else { $testItem = $this->model->createNew()->fields(array_keys($test))->fetchFirst($test); } return $this->evaluateResult($field, $testItem->count() === 0, "The value of " . implode(', ', $field['name']) . " must be unique"); }
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(); }