Reputation: 431
How can i update multiple rows use laravel eloquent?
I want something like:
$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')]);
I have tried
$guest->update(['sort_no' => 10]);
and i worked!
So i think my problem is in DB::raw
Thank you so much!
Upvotes: 0
Views: 1147
Reputation: 1583
use decrement();
guest = GuestJointDetail::where('guest_joint_id', $guest_joint_id)
->where('sort_no', '>', $sort_no)
->whereNull('deleted_at')
->decrement('sort_no',1);
use whereIn for multiple Ids:
guest = GuestJointDetail::whereIn('guest_joint_id', $guest_id_array)
->where('sort_no', '>', $sort_no)
->whereNull('deleted_at')
->decrement('sort_no',1);
Upvotes: 2
Reputation: 25936
You can use decrement()
:
$guest = GuestJointDetail::where('guest_joint_id', $guest_joint_id)
->where('sort_no', '>', $sort_no)
->whereNull('deleted_at')
->decrement('sort_no');
Upvotes: 1