【问题标题】:Laravel Bulk Update via a array requestLaravel 通过数组请求批量更新
【发布时间】:2021-06-28 07:04:13
【问题描述】:
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

我正在处理上表 projectmembers 的更新。 $request->member_id 返回一个包含少量 user_id 的数组,例如 [1,4,2,6]

我必须更新特定 project_id 的 member_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 收到的请求。更新表上的 member_ids 的最佳方法是什么

【问题讨论】:

    标签: laravel eloquent laravel-8 laravel-query-builder


    【解决方案1】:

    下一个解决方案是分两步更新您的表格。

    1. project_id的基础上删除数据
    2. 并准备带有request->member_idproject_id 的数组以供插入。

    假设我们有 project_idincharge_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 个查询中更新您的表。

    【讨论】:

      猜你喜欢
      • 2020-03-03
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多