如何更新数据透视数据

时间:2017-04-24 11:00:28

标签: octobercms

更新到最新的稳定版本后,我在更新数据透视数据时遇到了奇怪的行为。

我有一个ajax处理程序,可以更新订单数据透视表中的产品数量,如下所示:

foreach (input('quantity') as $id => $quantity) {
    $order->products()->updateExistingPivot($id, ['quantity' => $quantity]);
}

这会成功更新数据透视表中的数据,并且看起来很不错。

现在我刷新模型,以便数据是最新的:

$order = $order->fresh();

现在对于奇怪的部分。有人可以向我解释,为什么这会返回旧的透视值:

$order->products->first()->pivot->quantity;

然后返回更新的值:

$order->products()->first()->pivot->quantity;

以前第一个也返回了新值。

1 个答案:

答案 0 :(得分:1)

解决方案是使用fresh()函数和关系名称:

$order = $order->fresh(['products']);

不知道为什么它之前有效