From e0c8c711903c8f7a858ddc3b6bfa2f1c42172784 Mon Sep 17 00:00:00 2001 From: thinkphp Date: Tue, 11 Dec 2018 12:11:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B=E6=A8=A1=E5=9E=8B=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/think/Model.php | 16 +++++++++------- library/think/model/relation/HasMany.php | 5 ++--- library/think/model/relation/MorphMany.php | 5 ++--- library/think/model/relation/MorphOne.php | 5 ++--- 4 files changed, 15 insertions(+), 16 deletions(-) diff --git a/library/think/Model.php b/library/think/Model.php index 2190e341..2dc27b48 100644 --- a/library/think/Model.php +++ b/library/think/Model.php @@ -1043,15 +1043,17 @@ abstract class Model implements \JsonSerializable, \ArrayAccess } // 数据自动验证 - if (!$this->validateData($data)) { - return false; + if (!empty($data)) { + if (!$this->validateData($data)) { + return false; + } + + // 数据对象赋值 + foreach ($data as $key => $value) { + $this->setAttr($key, $value, $data); + } } - // 数据对象赋值 - foreach ($data as $key => $value) { - $this->setAttr($key, $value, $data); - } - if (!empty($where)) { $this->isUpdate = true; $this->updateWhere = $where; diff --git a/library/think/model/relation/HasMany.php b/library/think/model/relation/HasMany.php index 4f2b9abb..8a55acbb 100644 --- a/library/think/model/relation/HasMany.php +++ b/library/think/model/relation/HasMany.php @@ -202,10 +202,9 @@ class HasMany extends Relation */ public function save($data) { - $model = $this->make(); - $data = array_merge($model->getData(), $data); + $model = $this->make($data); - return $model->save($data) ? $model : false; + return $model->save() ? $model : false; } /** diff --git a/library/think/model/relation/MorphMany.php b/library/think/model/relation/MorphMany.php index e783136a..63358cd1 100644 --- a/library/think/model/relation/MorphMany.php +++ b/library/think/model/relation/MorphMany.php @@ -245,10 +245,9 @@ class MorphMany extends Relation */ public function save($data) { - $model = $this->make(); - $data = array_merge($model->getData(), $data); + $model = $this->make($data); - return $model->save($data) ? $model : false; + return $model->save() ? $model : false; } /** diff --git a/library/think/model/relation/MorphOne.php b/library/think/model/relation/MorphOne.php index a32fd5dc..44be4034 100644 --- a/library/think/model/relation/MorphOne.php +++ b/library/think/model/relation/MorphOne.php @@ -199,10 +199,9 @@ class MorphOne extends Relation */ public function save($data) { - $model = $this->make(); - $data = array_merge($model->getData(), $data); + $model = $this->make($data); - return $model->save($data) ? $model : false; + return $model->save() ? $model : false; } /**