显然我的内存不足,我意识到这是更新数千条记录的错误方法,但是正确的方法是什么?
我有一个assosiative数组,我正在循环更新记录值:
$array = ['red' => '1', 'blue' => '1', 'green' => '3']
(显然这个数组要大得多,大约有1000条记录。)
循环并更新如下:
foreach ($array as $key => $value) {
Colour::where('name', '=', $key)->update(['cost' => $value]);
}
这样做的正确方法是什么?
答案 0 :(得分:0)
而不是查询模型并更新它 - 尝试更新它而不提取:
foreach ($array as $key => $value) {
DB::table('colors')
->where('name', $key)
->update(['cost' => $value]);
}
有关详细信息,请参阅Laravel's documentation