我正在使用Laravel 4.2。
如果我想复制模型,我可以使用以下内容:
$newModel = $currentModel->replicate();
$newModel->save();
但是我在循环中有这个,就像这样:
foreach ($this->models as $currentModel) {
$newModel = $currentModel->replicate();
$newModel->save();
}
这显然导致了几个DB调用。我想要更高效的东西,所以我可以遍历我的模型,然后在循环之外使用一个DB调用来一次性写入它们。
在Laravel中,有没有办法一次复制多个模型?
答案 0 :(得分:1)
您可以使用insert
数据库查询构建器的语句,如下所示:
foreach ($this->models as $currentModel) {
$newModel = $currentModel->replicate()
$newModels[] = $newModel->toArray();
}
DB::table('table_name')->insert($newModels);
答案 1 :(得分:0)
不可能复制多个模型,您可以在api文档中看到: https://laravel.com/api/4.2/Illuminate/Database/Eloquent/Model.html#method_replicate
因此,如果您要复制X模型,您需要循环它们,您可以使用数组(使用数组参数)来填充您想要不复制的列