改进关联的属性绑定

This commit is contained in:
thinkphp
2017-07-20 17:52:11 +08:00
parent 8a52dd232f
commit 8ff20f98d0
3 changed files with 12 additions and 11 deletions

View File

@@ -143,10 +143,11 @@ class BelongsTo extends OneToOne
$relationModel->isUpdate(true); $relationModel->isUpdate(true);
} }
if ($relationModel && !empty($this->bindAttr)) { if (!empty($this->bindAttr)) {
// 绑定关联属性 // 绑定关联属性
$this->bindAttr($relationModel, $result, $this->bindAttr); $this->bindAttr($relationModel, $result, $this->bindAttr);
} }
// 设置关联属性 // 设置关联属性
$result->setRelation($attr, $relationModel); $result->setRelation($attr, $relationModel);
} }
@@ -175,7 +176,7 @@ class BelongsTo extends OneToOne
$relationModel->setParent(clone $result); $relationModel->setParent(clone $result);
$relationModel->isUpdate(true); $relationModel->isUpdate(true);
} }
if ($relationModel && !empty($this->bindAttr)) { if (!empty($this->bindAttr)) {
// 绑定关联属性 // 绑定关联属性
$this->bindAttr($relationModel, $result, $this->bindAttr); $this->bindAttr($relationModel, $result, $this->bindAttr);
} }

View File

@@ -140,11 +140,11 @@ class HasOne extends OneToOne
$relationModel = $data[$result->$localKey]; $relationModel = $data[$result->$localKey];
$relationModel->setParent(clone $result); $relationModel->setParent(clone $result);
$relationModel->isUpdate(true); $relationModel->isUpdate(true);
}
if (!empty($this->bindAttr)) { if (!empty($this->bindAttr)) {
// 绑定关联属性 // 绑定关联属性
$this->bindAttr($relationModel, $result, $this->bindAttr); $this->bindAttr($relationModel, $result, $this->bindAttr);
} }
}
// 设置关联属性 // 设置关联属性
$result->setRelation($attr, $relationModel); $result->setRelation($attr, $relationModel);
} }
@@ -173,11 +173,11 @@ class HasOne extends OneToOne
$relationModel = $data[$result->$localKey]; $relationModel = $data[$result->$localKey];
$relationModel->setParent(clone $result); $relationModel->setParent(clone $result);
$relationModel->isUpdate(true); $relationModel->isUpdate(true);
}
if (!empty($this->bindAttr)) { if (!empty($this->bindAttr)) {
// 绑定关联属性 // 绑定关联属性
$this->bindAttr($relationModel, $result, $this->bindAttr); $this->bindAttr($relationModel, $result, $this->bindAttr);
} }
}
$result->setRelation(Loader::parseName($relation), $relationModel); $result->setRelation(Loader::parseName($relation), $relationModel);
} }

View File

@@ -276,7 +276,7 @@ abstract class OneToOne extends Relation
if (isset($result->$key)) { if (isset($result->$key)) {
throw new Exception('bind attr has exists:' . $key); throw new Exception('bind attr has exists:' . $key);
} else { } else {
$result->setAttr($key, $model->$attr); $result->setAttr($key, $model ? $model->$attr : null);
} }
} }
} }