使用Laravel更新循环中的记录会给我500服务器错误

时间:2017-07-05 14:32:47

标签: laravel loops records

显然我的内存不足,我意识到这是更新数千条记录的错误方法,但是正确的方法是什么?

我有一个assosiative数组,我正在循环更新记录值:

$array = ['red' => '1', 'blue' => '1', 'green' => '3']

(显然这个数组要大得多,大约有1000条记录。)

循环并更新如下:

  foreach ($array as $key => $value) {
    Colour::where('name', '=', $key)->update(['cost' => $value]);
  }

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

而不是查询模型并更新它 - 尝试更新它而不提取:

foreach ($array as $key => $value) {
    DB::table('colors')
        ->where('name', $key)
        ->update(['cost' => $value]);
}

有关详细信息,请参阅Laravel's documentation