一次复制多个模型



我正在使用Laravel 4.2。

如果我想复制模型,可以使用以下内容:

$newModel = $currentModel->replicate();
$newModel->save();

但是我在循环中有一个,如下所示:

foreach ($this->models as $currentModel) {
    $newModel = $currentModel->replicate();
    $newModel->save();
}

这显然会导致多个数据库调用。 我想要更高效的东西,这样我就可以遍历我的模型,然后在循环之外使用一个数据库调用一次性编写它们。

在Laravel中,有没有办法一次复制多个模型?

您可以使用数据库查询生成器的 insert 语句,如下所示:

foreach ($this->models as $currentModel) {
    $newModel = $currentModel->replicate()
    $newModels[] = $newModel->toArray();
}
DB::table('table_name')->insert($newModels);

不,不可能复制多个模型,您可以在 api 文档中看到:https://laravel.com/api/4.2/Illuminate/Database/Eloquent/Model.html#method_replicate

因此,如果您要复制 X 模型,则需要循环它们,并且您可以专门(使用数组参数)您不想复制的列

最新更新