public function preUpdateCallback($data)
 {
     if (isset($this->model->getDescription()->getFields()['updated'])) {
         $data['updated'] = date('Y-m-d H:i:s');
     }
     return $data;
 }
Beispiel #2
0
 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");
 }
Beispiel #3
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();
 }