如何在3列数据透视表中使用同步?

时间:2019-06-01 12:45:00

标签: php laravel

Pivot: team_member
team_id  |  member_id  |  status  |
-----------------------------------
   1     |      1      |    1     |
   1     |      2      |    1     |
   2     |      3      |    1     |
   3     |      4      |    1     |

如何使用同步功能将最后一条记录更新为状态0?

$team = Team::find(3);
$member_ids = [4];
$status = 0;

$team->members()->sync($member_ids, ['status' => 0]);

如果team_id和member_id与现有的一样,则同步不起作用。

团队模型

   public function members() {
        return $this->belongsToMany(Member::class, 'team_member', 'team_id', 'member_id')->withPivot('status');
    }

1 个答案:

答案 0 :(得分:0)

尝试使用此功能:

更新数据透视表上的记录

如果需要更新数据透视表中的现有行,则可以使用updateExistingPivot方法。此方法接受数据透视记录外键和要更新的属性数组:

$team->members()->updateExistingPivot($memberId, ['status' => 0]);

source

致谢