我的数据库中有一个包含行数的详细信息表。
见下图。分为两行,一列中有 1250、1250 卢比。 我总共显示了2500。但是当用户想要使用全部总量时我想更新两列中的数据,如何在 laravel 中更新这两行?
$wallet_details = tbl_wallet_detail::where('wd_parent_id', $usewallet->wm_id) ->whereMonth('tbl_wallet_details.wd_start_date', date('m')) ->whereYear('tbl_wallet_details.wd_start_date', date('Y'))->first(); $wallet_details->wd_used_amount = $wallet_details->wd_used_amount + $request->usewallet; $wallet_details->wd_remaining_amount = $wallet_details->wd_remaining_amount - $request->usewallet; $wallet_details->save();
P粉6424362822024-02-18 09:34:07
我不知道您的用例的所有细节(例如您如何获取用户
已使用的量),但是,以下概述了解决您的问题的一种方法。< /p>
我为此示例创建了一个 Wallet
模型和关联表,并在其上定义了一个 used
列来表示已使用的金额,以及类似的 remaining< /代码> 列。显然,您可以用您的具体信息替换这些内容。
$wallet = \App\Models\Wallet::where('user_id', 1) ->selectRaw('sum(used) as total') ->groupBy('used') ->first(); $remaining = $wallet->total - 1500; \App\Models\Wallet::where('user_id', 1) ->update([ 'remaining' => $remaining / $wallet->count() ]);
用户
的used
字段值进行求和
(总计)$remaining
金额用户
每一行的剩余
列如上所述,如何从表中获取相关行取决于您,使用 user_id
只是一个示例,但您可以使用 transaction id
或其他对您的用例有意义。