作者:涂凌萱_TLX_9s7_140 | 来源:互联网 | 2022-12-09 16:41
我想在Laravel中批量更新我的记录,但是记录没有更新。每个ID都有不同的记录。以下是我正在尝试的。
$ids = [5,6,8,9],
$updated_array = [
['name' => 'tarun'],
['name' => 'Akash'],
['name' => 'Soniya'],
['name' => 'Shalu'],
];
Model::whereIn('id', $ids)->update($updated_array);
Devon..
5
当您尝试将多行更新为相同值时,将使用批量更新。您不能使用不同的值进行批量更新。
因此,这将起作用,但是会将所有匹配的记录更新为“ tarun”的名称:
Model::whereIn('id', $ids)->update(['name' => 'tarun']);
例如,您可以执行以下操作:
foreach($ids as $key => $id) {
Model::where('id', $id)->update($updated_array[$key]);
}
但是据我所知,没有在Laravel中运行4个查询并编写原始SQL语句来完成此操作的方法将是一团糟。
1> Devon..:
当您尝试将多行更新为相同值时,将使用批量更新。您不能使用不同的值进行批量更新。
因此,这将起作用,但是会将所有匹配的记录更新为“ tarun”的名称:
Model::whereIn('id', $ids)->update(['name' => 'tarun']);
例如,您可以执行以下操作:
foreach($ids as $key => $id) {
Model::where('id', $id)->update($updated_array[$key]);
}
但是据我所知,没有在Laravel中运行4个查询并编写原始SQL语句来完成此操作的方法将是一团糟。