改进关联save方法

This commit is contained in:
thinkphp
2018-12-12 17:17:41 +08:00
parent e0c8c71190
commit 480b56767b
3 changed files with 30 additions and 4 deletions

View File

@@ -202,9 +202,15 @@ class HasMany extends Relation
*/ */
public function save($data) public function save($data)
{ {
$model = $this->make($data); if ($data instanceof Model) {
$data = $data->getData();
}
return $model->save() ? $model : false; // 保存关联表数据
$data[$this->foreignKey] = $this->parent->{$this->localKey};
$model = new $this->model();
return $model->save($data) ? $model : false;
} }
/** /**

View File

@@ -245,7 +245,17 @@ class MorphMany extends Relation
*/ */
public function save($data) public function save($data)
{ {
$model = $this->make($data); if ($data instanceof Model) {
$data = $data->getData();
}
// 保存关联表数据
$pk = $this->parent->getPk();
$data[$this->morphKey] = $this->parent->$pk;
$data[$this->morphType] = $this->type;
$model = new $this->model();
return $model->save() ? $model : false; return $model->save() ? $model : false;
} }

View File

@@ -199,7 +199,17 @@ class MorphOne extends Relation
*/ */
public function save($data) public function save($data)
{ {
$model = $this->make($data); if ($data instanceof Model) {
$data = $data->getData();
}
// 保存关联表数据
$pk = $this->parent->getPk();
$data[$this->morphKey] = $this->parent->$pk;
$data[$this->morphType] = $this->type;
$model = new $this->model();
return $model->save() ? $model : false; return $model->save() ? $model : false;
} }