当使用BelongsToMany关联模型并附加Pivot时,为了使关联数据正确更新,需要使用Laravel的fresh()方法。下面是示例代码:
// 创建关联 class User extends Model { public function roles() { return $this->belongsToMany(Role::class)->withPivot('active')->withTimestamps(); } }
// 附加Pivot $user = User::find(1); $user->roles()->attach($roleId, ['active' => true]);
// 使用fresh()方法 $user = $user->fresh('roles');
// 更新Pivot字段 $user->roles()->updateExistingPivot($roleId, ['active' => false]);