MorphMany关联增加save和saveall方法

This commit is contained in:
thinkphp
2016-12-09 15:01:34 +08:00
parent c5dbbb45da
commit 308a0b9ca8
2 changed files with 36 additions and 2 deletions

View File

@@ -167,8 +167,7 @@ class HasMany extends Relation
{
$result = false;
foreach ($dataSet as $key => $data) {
$data[$this->foreignKey] = $this->parent->{$this->localKey};
$result = $this->save($data);
$result = $this->save($data);
}
return $result;
}

View File

@@ -141,6 +141,41 @@ class MorphMany extends Relation
return $data;
}
/**
* 保存(新增)当前关联数据对象
* @access public
* @param mixed $data 数据 可以使用数组 关联模型对象 和 关联对象的主键
* @return integer
*/
public function save($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($data);
}
/**
* 批量保存当前关联数据对象
* @access public
* @param array $dataSet 数据集
* @return integer
*/
public function saveAll(array $dataSet)
{
$result = false;
foreach ($dataSet as $key => $data) {
$result = $this->save($data);
}
return $result;
}
/**
* 执行基础查询(进执行一次)
* @access protected