改进关联查询

This commit is contained in:
thinkphp
2017-04-03 09:37:31 +08:00
parent 4dd5582cdd
commit 6e5d6fa7b2
4 changed files with 16 additions and 4 deletions

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}