如何使用laravel雄辩地更新多行?
我想要类似的东西
$guest = GuestJointDetail::where('guest_joint_id', $guest_joint_id)
->where('sort_no', '>', $sort_no)
->whereNull('deleted_at');
$guest->update(['sort_no' => DB::raw('sort_no - 1')]);
我尝试过
$guest->update(['sort_no' => 10]);
我工作了!
所以我认为我的问题出在 DB :: raw
非常感谢您!
答案 0 :(得分:2)
使用decrement();
guest = GuestJointDetail::where('guest_joint_id', $guest_joint_id)
->where('sort_no', '>', $sort_no)
->whereNull('deleted_at')
->decrement('sort_no',1);
将whereIn用于多个ID:
guest = GuestJointDetail::whereIn('guest_joint_id', $guest_id_array)
->where('sort_no', '>', $sort_no)
->whereNull('deleted_at')
->decrement('sort_no',1);
答案 1 :(得分:1)
您可以使用decrement()
:
$guest = GuestJointDetail::where('guest_joint_id', $guest_joint_id)
->where('sort_no', '>', $sort_no)
->whereNull('deleted_at')
->decrement('sort_no');