What is the best way to update records send from checkbox form. How to get to known which one have been unchecked.
My algorithm unset all values than goes again and check ids from request. Moreover it cause problem with timestamps, because all values are being updated every single time.
public function plansUpdate(Request $request){
//set all plans as not default to handle unchecked
$plans = $this->planService->getAllPlans()->pluck('id');
PlanModel::whereIn('id', $plans)->update(['is_default' => false]);
//set checked plans as default
$defaultPlans = $request->get('default-plans');
PlanModel::whereIn('id', $defaultPlans)->update(['is_default' => true]);
return redirect()->back();
}
I would like to perform better solution where only values changed in the form are being "touch" in the back-end.