/** * Save this record to database: insert or update depending on whether record exists in DB. * Silently ignores all keys that have no corresponding fields in database table. * * @return mixed this record id * @throws waException when values fail validation */ public function save() { $this->beforeSave(); $values = array_intersect_key($this->removeStubs()->rec_data, $this->m->getMetadata()); if ($this->id === null) { $this->id = $this->m->insert($values); $this[$this->m->getTableId()] = $this->id; } else { $this->m->updateById($this->id, $values); } $this->afterSave(); $this->merge(); return $this->id; }
public function insert($data, $type = 0) { if (!isset($data['application_id'])) { $data['application_id'] = waSystem::getInstance()->getApp(); } if (!isset($data['create_datetime'])) { $data['create_datetime'] = date('Y-m-d H:i:s'); } return parent::insert($data); }
public function insert($data, $type = 0) { if (!isset($data['create_contact_id'])) { $data['create_contact_id'] = waSystem::getInstance()->getUser()->getId(); } if (!isset($data['create_app_id'])) { $data['create_app_id'] = waSystem::getInstance()->getApp(); } if (!isset($data['create_datetime'])) { $data['create_datetime'] = date("Y-m-d H:i:s"); } return parent::insert($data, $type = 0); }
/** * Save this record to database: insert or update depending on whether record exists in DB. * Silently ignores all keys that have no corresponding fields in database table. * * @return mixed this record id * @throws waException when values fail validation */ public function save() { $this->beforeSave(); $values = array_intersect_key($this->removeStubs()->rec_data, $this->m->getMetadata()); $do_insert = true; $id = $this->getId(); // Force saving with given id, if specified during construction $id || ($id = $this->persistent->ifset($this->m->getTableId())); // Update if record exists if ($id && $this->exists()) { if (!$values) { $do_insert = false; } else { $result = $this->m->updateById($this->id, $values, null, true); if ($result->affectedRows()) { $do_insert = false; if (!empty($values[$this->m->getTableId()])) { $this->id = $values[$this->m->getTableId()]; } } else { // Make sure the record exists if ($row = $this->m->getById($this->id)) { $do_insert = false; $this->persistent->setAll($row); } else { $this->clearPersistent(); } } } } else { if ($id && empty($values[$this->m->getTableId()])) { // id was given to constructor, but no such record exists $values[$this->m->getTableId()] = $id; } } // No row in database yet: insert if ($do_insert) { unset($this->persistent[$this->m->getTableId()]); $this->id = $this->m->insert($values); $this[$this->m->getTableId()] = $this->id; } $this->afterSave(); $this->merge(); return $this->id; }
public function insert($data, $type = 0) { if (!isset($data['sort'])) { $sql = "SELECT MAX(`sort`) `sort`, COUNT(1) `cnt` FROM {$this->table}"; $where = array(); if (is_array($this->id)) { $fields = $this->remapId($data); foreach ($fields as $field => $value) { if ($value !== null) { $where[] = $this->getWhereByField($field, $value); } } } if ($this->context && isset($data[$this->context])) { $where[] = $this->getWhereByField($this->context, $data[$this->context]); } if ($where) { $sql .= ' WHERE (' . implode(') AND (', $where) . ')'; } $sort = $this->query($sql)->fetchAssoc(); if ($sort['cnt']) { ++$sort['sort']; } $data['sort'] = $sort['sort']; } return parent::insert($data, $type); }
public function insert($data, $type = 0) { $data['url'] = $this->genUniqueUrl(empty($data['url']) ? $data['name'] : $data['url']); return parent::insert($data, $type); }
public function insert($data, $type = 0) { $data['datetime'] = date('Y-m-d H:i:s'); $data['description'] = self::$description; $data['type'] = self::$transaction_type; if (self::$params) { if (isset(self::$params['order_id'])) { $data['order_id'] = self::$params['order_id']; } } parent::insert($data, $type); }
public function insert($data, $type = 0) { if (!isset($data['create_datetime'])) { $data['create_datetime'] = date('Y-m-d H:i:s'); } return parent::insert($data, $type); }