From 1b0c52cfe33a78b883402411b90597787821f071 Mon Sep 17 00:00:00 2001 From: Nick Shatilo <34378579+nickshatilo@users.noreply.github.com> Date: Tue, 9 Oct 2018 18:51:38 +0300 Subject: [PATCH] fix(13909): fixed update_at column is ambiguous-column by qualifying column name (#26022) --- src/Illuminate/Database/Eloquent/Builder.php | 13 +++++++++---- .../Database/Eloquent/Concerns/HasTimestamps.php | 10 ++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/Illuminate/Database/Eloquent/Builder.php b/src/Illuminate/Database/Eloquent/Builder.php index fd9919ef05ef..b67ff1d05bb4 100755 --- a/src/Illuminate/Database/Eloquent/Builder.php +++ b/src/Illuminate/Database/Eloquent/Builder.php @@ -822,10 +822,15 @@ protected function addUpdatedAtColumn(array $values) return $values; } - return Arr::add( - $values, $this->model->getUpdatedAtColumn(), - $this->model->freshTimestampString() - ); + if (! empty($this->getQuery()->joins)) { + $column = $this->model->getQualifiedUpdatedAtColumn(); + } else { + $column = $this->model->getUpdatedAtColumn(); + } + + return array_merge($values, [ + $column => $this->model->freshTimestampString(), + ]); } /** diff --git a/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php b/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php index ce3e0801dee6..fb355c5bf217 100644 --- a/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php +++ b/src/Illuminate/Database/Eloquent/Concerns/HasTimestamps.php @@ -122,4 +122,14 @@ public function getUpdatedAtColumn() { return static::UPDATED_AT; } + + /** + * Get the fully qualified "updated at" column. + * + * @return string + */ + public function getQualifiedUpdatedAtColumn() + { + return $this->getTable().'.'.$this->getUpdatedAtColumn(); + } }