[英]Problems updating additional column on just one Laravel pivot record
當嘗試僅更新 pivot_table 的一條記錄時,此方法會更新所有具有相同order_id
和user_id
記錄。 只應更新與order_id
、 user_id
、 status_id
和finished_at = null
匹配的記錄。
public function pause($id)
{
$order = Order::find($id);
$now = Carbon::now();
$stage = Status::find($order->status_id)->stage_id;
$users = $order
->user()
->where('status_id', $order->status_id)
->where('finished_at', null)
->get();
foreach($users as $user)
{
$user->pivot->finished_at = $now;
$user->pivot->save();
}
flash()->success('Progress paused for order #' . $order->order_number .'.');
return redirect('/department/' . $stage);
}
如果你只是從給定的 Order 中獲取所有用戶,你可以遍歷他們並更新他們的數據透視記錄,如下所示:
// set finished_at time for all users
foreach($users as $user)
{
$user->order()
->wherePivot('status_id', $order->status_id)
->wherePivot('finished_at', null)
->updateExistingPivot($order->id, [ 'finished_at' => $now ], false);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.