diff --git a/src/Eloquent/Builder.php b/src/Eloquent/Builder.php index 5d4018f9d..e10713a80 100644 --- a/src/Eloquent/Builder.php +++ b/src/Eloquent/Builder.php @@ -325,6 +325,9 @@ protected function addUpdatedAtColumn(array $values) } $column = $this->model->getUpdatedAtColumn(); + if (array_key_exists('$set', $values) && array_key_exists($column, $values['$set'])) { + return $values; + } $values = array_replace( [$column => $this->model->freshTimestampString()], $values, diff --git a/src/Eloquent/DocumentModel.php b/src/Eloquent/DocumentModel.php index f8d399e62..e2a0e3703 100644 --- a/src/Eloquent/DocumentModel.php +++ b/src/Eloquent/DocumentModel.php @@ -106,7 +106,7 @@ public function getQualifiedKeyName() * * @param mixed $value */ - public function fromDateTime($value): UTCDateTime + public function fromDateTime($value): UTCDateTime|string { // If the value is already a UTCDateTime instance, we don't need to parse it. if ($value instanceof UTCDateTime) { @@ -117,7 +117,9 @@ public function fromDateTime($value): UTCDateTime if (! $value instanceof DateTimeInterface) { $value = parent::asDateTime($value); } - + if (isset($this->dateFormat)) { + return $value->format($this->getDateFormat()); + } return new UTCDateTime($value); }