我正在使用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 模型,则需要循环它们,并且您可以专门(使用数组参数)您不想复制的列