为了账号安全,请及时绑定邮箱和手机立即绑定

更新数据库中的复选框值

更新数据库中的复选框值

PHP
qq_遁去的一_1 2021-05-06 14:27:47
更新复选框形式发送的记录的最佳方法是什么。如何知道哪一个未被选中。我的算法未设置所有值,然后再次检查并从请求中检查ID。此外,由于所有值每一次都会更新,因此会引起时间戳问题。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();    }我想执行更好的解决方案,其中仅在表单中更改的值在后端被“触摸”。
查看完整描述

1 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

像这样创建它,不要忘记$id用实际的ID替换:


<input type="hidden" name="default_plans[$id]" value="0" />

<input type="checkbox" name="default_plains[$id]" value="1" />

然后在您的php代码中遍历模型并在事务中更新它们。


public function plansUpdate(Request $requets) {

    $plans = $this->planService->getAllPlans();


    $defaultPlans = $request->get('default_plans');

    DB::beginTransaction();

    foreach($plans as $plan) {

        $plan->is_default = boolval($defaultPlans[$plan->id] ?? false);

        $plan->save();

    }

    DB::commit(); 

}


查看完整回答
反对 回复 2021-05-21
  • 1 回答
  • 0 关注
  • 154 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号