easy-swoole / orm

31 stars 27 forks source link

saveAll 方法在设置表名的情况下,static::create 之后,需要设置一下 tableName,要不然设置的表名不起作用 #163

Closed browningweb closed 4 years ago

browningweb commented 4 years ago

https://github.com/easy-swoole/orm/blob/19d5f0f2cde9635c69f78aec76ce1347d9ca2574/src/AbstractModel.php#L433-L438

例如 model 的原始表为 user,将 user 表分表为 user_1, user_2, user_3。 再调用 saveAll 方法时,会使用 $this->tableName('user_1')->saveAll($fields, false); 但是数据存储的时候,这个设置的表名没有生效。 需要改成 if ($replace && isset($row[$pk])){ $model = static::create()->tableName($this->tableName())->connection($connectionName)->get($row[$pk]); unset($row[$pk]); $model->update($row); $result[$key] = $model; }else{ $model = static::create($row)->tableName($this->tableName())->connection($connectionName); $model->save(); $result[$key] = $model; }

xuanyanwow commented 4 years ago

1.该问题新版将会修复 2.请后续提交issue 按照模板以及使用 markdown 语法格式化代码、内容,以便查看