【问题标题】:Yii2 save multiple data records in once [duplicate]Yii2一次保存多条数据记录[重复]
【发布时间】:2026-01-28 00:05:02
【问题描述】:

例如,如何一次保存多条数据记录,

$model->title = "Negativ Balance";
$model->settingsName = "negativeBalance";
$model->settingsValue = "0";
$model->save();

$model->title = "Warnung Balance";
$model->settingsName = "warningBalance";
$model->settingsValue = "2";
$model->save();

如果我做这些代码,只保存最后的记录,我怎样才能一次保存所有这些数据?谢谢!

【问题讨论】:

  • 您正在处理相同的记录。创建不同的记录。

标签: php activerecord yii2


【解决方案1】:

您必须创建一个新模型,然后分配值

$model = new YourModel();

$model->title = "Negativ Balance";
$model->settingsName = "negativeBalance";
$model->settingsValue = "0";
$model->save();

$model = new YourModel();

$model->title = "Warnung Balance";
$model->settingsName = "warningBalance";
$model->settingsValue = "2";
$model->save();

但如果您需要多个插入,您还可以查看yii\db\CommandbatchInsert() 方法,查看更多http://www.yiiframework.com/doc-2.0/yii-db-command.html#batchInsert%28%29-detail

【讨论】:

  • 这是错误的方式
  • @Kshitiz 。为什么??'
  • 有一种叫做批量插入的东西,用于多次插入。不需要多次调用同一类。如果你有 1000 条记录,那么你的系统会有多慢? php 比任何其他语言慢 10 倍。如果您有 1000 个用户插入 1000 条记录,那该怎么办?也可以读取mysql事务。
  • 答案与 OP 提供的样本密切相关,为此我的答案是正确的.. “事物调用批量插入”基于 yii\db\CommandbatchInsert() 方法,请参阅此了解更多信息yiiframework.com/doc-2.0/… ...艾米威。根据你的建议,我也在我的回答中添加了一些信息。 ..谢谢..