diff --git a/library/think/Model.php b/library/think/Model.php index 9024c30c..2e5531e5 100644 --- a/library/think/Model.php +++ b/library/think/Model.php @@ -1258,7 +1258,7 @@ abstract class Model implements \JsonSerializable, \ArrayAccess /** * 返回模型的错误信息 * @access public - * @return string + * @return string|array */ public function getError() { diff --git a/library/think/model/relation/BelongsTo.php b/library/think/model/relation/BelongsTo.php index 9e443d54..630719c0 100644 --- a/library/think/model/relation/BelongsTo.php +++ b/library/think/model/relation/BelongsTo.php @@ -54,7 +54,10 @@ class BelongsTo extends OneToOne ->where($this->localKey, $this->parent->$foreignKey) ->relation($subRelation) ->find(); - $relationModel->setParent(clone $this->parent); + + if ($relationModel) { + $relationModel->setParent(clone $this->parent); + } return $relationModel; } diff --git a/library/think/model/relation/HasOne.php b/library/think/model/relation/HasOne.php index 991a594f..e5a557a0 100644 --- a/library/think/model/relation/HasOne.php +++ b/library/think/model/relation/HasOne.php @@ -51,7 +51,10 @@ class HasOne extends OneToOne } // 判断关联类型执行查询 $relationModel = $this->query->where($this->foreignKey, $this->parent->$localKey)->relation($subRelation)->find(); - $relationModel->setParent(clone $this->parent); + + if ($relationModel) { + $relationModel->setParent(clone $this->parent); + } return $relationModel; } diff --git a/library/think/model/relation/MorphOne.php b/library/think/model/relation/MorphOne.php index b58b0419..e22198bb 100644 --- a/library/think/model/relation/MorphOne.php +++ b/library/think/model/relation/MorphOne.php @@ -56,7 +56,10 @@ class MorphOne extends Relation call_user_func_array($closure, [ & $this->query]); } $relationModel = $this->relation($subRelation)->find(); - $relationModel->setParent(clone $this->parent); + + if ($relationModel) { + $relationModel->setParent(clone $this->parent); + } return $relationModel; } diff --git a/library/think/model/relation/MorphTo.php b/library/think/model/relation/MorphTo.php index 70f1dc03..d67989c4 100644 --- a/library/think/model/relation/MorphTo.php +++ b/library/think/model/relation/MorphTo.php @@ -58,7 +58,10 @@ class MorphTo extends Relation // 主键数据 $pk = $this->parent->$morphKey; $relationModel = (new $model)->relation($subRelation)->find($pk); - $relationModel->setParent(clone $this->parent); + + if ($relationModel) { + $relationModel->setParent(clone $this->parent); + } return $relationModel; }