/** * @param anvilDataConnectionAbstract $dataConnection * * @return DateTime|float|int|null|string */ public function toSave($dataConnection) { $return = ''; switch ($this->fieldType) { case self::DATA_TYPE_BOOLEAN: $return = $dataConnection->dbBoolean($this->_value); break; case self::DATA_TYPE_DATE: $value = isset($this->_value) ? $this->_value : ($this->allowNull ? null : $this->defaultValue); $return = $value; if (!is_null($value)) { $value = new DateTime($value, new DateTimeZone('UTC')); $return = $value->format($dataConnection->dateFormat); $return = $dataConnection->dbDate($return); } break; case self::DATA_TYPE_DTS: $value = !empty($this->_value) ? $this->_value : ($this->allowNull ? null : $this->defaultValue); $return = $value; if (!is_null($value)) { $value = new DateTime($value, new DateTimeZone('UTC')); $return = $value->format($dataConnection->dtsFormat); $return = $dataConnection->dbDTS($return); } break; case self::DATA_TYPE_PHONE: $value = ''; if (isset($this->_value)) { $pattern = '/[^0-9]*/'; $value = preg_replace($pattern, '', $this->_value); } $return = $value != '' ? $dataConnection->dbString($value) : ($this->allowNull ? null : (isset($this->defaultValue) ? $dataConnection->dbString($this->defaultValue) : $dataConnection->dbString(''))); if ($return == '') { $return = null; } break; case self::DATA_TYPE_STRING: $return = isset($this->_value) ? $dataConnection->dbString($this->_value) : ($this->allowNull ? null : (isset($this->defaultValue) ? $dataConnection->dbString($this->defaultValue) : $dataConnection->dbString(''))); if ($return == '') { $return = null; } break; case self::DATA_TYPE_ADD_DTS: $return = 'NOW()'; break; case self::DATA_TYPE_DECIMAL: case self::DATA_TYPE_FLOAT: $return = isset($this->_value) ? floatval($this->_value) : ($this->allowNull ? null : (isset($this->defaultValue) ? $this->defaultValue : 0)); break; case self::DATA_TYPE_NUMBER: default: $return = isset($this->_value) ? intval($this->_value) : ($this->allowNull ? null : (isset($this->defaultValue) ? $this->defaultValue : 0)); break; } if (is_null($return)) { $return = 'null'; } return $return; }