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; } /**