/** * @param AbstractEntity $entity * @return AbstractEntity * @throws \Edefine\Framework\Database\DatabaseException */ private function updateEntity(AbstractEntity $entity) { $updateParts = []; foreach ($entity->getMappedFieldsWithValues() as $field => $value) { $updateParts[] = sprintf('`%s` = %s', $field, ValueConverter::convertToDatabase($value)); } $result = $this->database->exec(sprintf('UPDATE `%s` SET %s WHERE `id` = %d', $entity->getTableName(), implode(', ', $updateParts), $entity->getId())); return $entity; }
/** * @param AbstractEntity $entity * @param $field * @param $value * @return \DateTime */ public static function convertToEntity(AbstractEntity $entity, $field, $value) { if (in_array($field, $entity->getDateTimeFields())) { if ($value) { return new \DateTime($value); } else { return null; } } if (in_array($field, $entity->getArrayFields())) { return unserialize($value); } return $value; }