protected function normalizeValue(TableColumn $col, $value) { switch ($col->getBasicType()) { case 'date': if (is_string($value)) { return date('Y-m-d', strtotime($value)); } if (is_int($value)) { return date('Y-m-d', $value); } if ($value instanceof \DateTime) { return $value->format('Y-m-d'); } return $value; case 'datetime': if (is_string($value)) { return date('Y-m-d H:i:s', strtotime($value)); } if (is_int($value)) { return date('Y-m-d H:i:s', $value); } if ($value instanceof \DateTime) { return $value->format('Y-m-d H:i:s'); } return $value; case 'enum': if (is_int($value)) { return $value; } if (!in_array($value, $col->getValues())) { return 0; } return $value; case 'int': return (int) $value; default: return $value; } }