Laravel 通过数组请求批量更新
Laravel Bulk Update via a array request
id
incharge_id
member_id
project_id
1
3
1
1
2
3
4
1
3
3
2
1
4
3
6
1
5
5
2
2
6
5
4
2
我正在处理以上 table projectmembers
的更新。
$request->member_id
returns 包含很少 user_ids 的数组,例如 [1,4,2,6]
I have to update the member_id's of specific project_id
foreach ($request->member_id as $item => $value) {
DB::table('projectmembers')
->where('project_id', $id)
->update([
'member_id' => $request->member_id[$item]['member_id']
]);
}
在某些情况下,project_id 可以有 3 个成员/5 个成员,这取决于我们从 $request->member_id
获得的请求。在 table
上更新 member_ids 的最佳方法是什么
下一个解决方案是分两步更新您的 table。
- 在
project_id
的基础上删除数据
- 并准备
request->member_id
和 project_id
数组用于插入。
假设我们有 project_id
和 incharge_id
请求。
让我们举个例子。
TableName::where('project_id', $project_id)->delete();
$array = array();
foreach ($request->member_id as $key => $val) {
$array[] = [
'member_id' => $val['member_id'],
'project_id' => $project_id,
'incharge_id' => $incharge_id
];
}
TableName::insert($array);
您可以在 2 个查询而不是 5 个查询中更新您的 table。
id | incharge_id | member_id | project_id |
---|---|---|---|
1 | 3 | 1 | 1 |
2 | 3 | 4 | 1 |
3 | 3 | 2 | 1 |
4 | 3 | 6 | 1 |
5 | 5 | 2 | 2 |
6 | 5 | 4 | 2 |
我正在处理以上 table projectmembers
的更新。
$request->member_id
returns 包含很少 user_ids 的数组,例如 [1,4,2,6]
I have to update the member_id's of specific project_id
foreach ($request->member_id as $item => $value) {
DB::table('projectmembers')
->where('project_id', $id)
->update([
'member_id' => $request->member_id[$item]['member_id']
]);
}
在某些情况下,project_id 可以有 3 个成员/5 个成员,这取决于我们从 $request->member_id
获得的请求。在 table
下一个解决方案是分两步更新您的 table。
- 在
project_id
的基础上删除数据
- 并准备
request->member_id
和project_id
数组用于插入。
假设我们有 project_id
和 incharge_id
请求。
让我们举个例子。
TableName::where('project_id', $project_id)->delete();
$array = array();
foreach ($request->member_id as $key => $val) {
$array[] = [
'member_id' => $val['member_id'],
'project_id' => $project_id,
'incharge_id' => $incharge_id
];
}
TableName::insert($array);
您可以在 2 个查询而不是 5 个查询中更新您的 table。