Skip to content

Commit e00f1cb

Browse files
committed
改进saveall方法
1 parent 0348ff2 commit e00f1cb

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/Model.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -571,12 +571,17 @@ public static function saveAll(iterable $dataSet, bool $replace = true): Collect
571571
$pk = $model->getPk();
572572
foreach ($dataSet as $key => $data) {
573573
$model = new static;
574-
$exists = true;
575-
foreach ((array) $pk as $field) {
576-
if (is_string($field) && !isset($data[$field])) {
577-
$exists = false;
574+
if ($replace) {
575+
$exists = true;
576+
foreach ((array) $pk as $field) {
577+
if (is_string($field) && !isset($data[$field])) {
578+
$exists = false;
579+
}
578580
}
581+
} else {
582+
$exists = false;
579583
}
584+
580585
$model->replace($replace)->exists($exists)->save($data);
581586
$result[$key] = $model->fetchModel($model);
582587
}

0 commit comments

Comments
 (0)