【发布时间】:2014-12-08 05:36:42
【问题描述】:
我正在通过读取 CSV 文件创建多个(有时数百,有时数千)Eloquent 对象。
以这个循环为例:
$cities = [];
while ($city = readNextCity()) {
$cities[] = $city;
}
// ok how do I save all $cities without calling $city->save() on each?
我们知道在一个查询中插入多行比在每个查询中插入 1 行要高效得多。但是,有没有办法一次插入多个 eloquent 对象,以便将它们翻译成一个查询? (如果没有,我不介意写它,但我不想重复努力)。
【问题讨论】:
-
不,你不能一次保存 Eloquent 模型。您应该使用
Connection方法insert,它接受与列对应的数组数组。所以除非你真的需要构建那些Models,否则不要,而是构建一个数组并将其传递给insert方法。
标签: php mysql laravel eloquent