亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

更新數據庫中的復選框值

更新數據庫中的復選框值

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 關注
  • 163 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號