更新到最新的稳定版本后,我在更新数据透视数据时遇到了奇怪的行为。
我有一个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;
以前第一个也返回了新值。
答案 0 :(得分:1)
解决方案是使用fresh()
函数和关系名称:
$order = $order->fresh(['products']);
不知道为什么它之前有效