Aktualisieren Sie numerische Daten in zwei Zeilen mit Laravel MySQL
P粉161939752
P粉161939752 2024-02-17 18:43:50
0
1
328

Ich habe eine Detailtabelle mit der Anzahl der Zeilen in meiner Datenbank.

Siehe Bild unten. Aufgeteilt in zwei Reihen stehen in einer Spalte 1250, 1250 Rupien. Ich habe insgesamt 2500 gezeigt. Aber wenn der Benutzer die Gesamtsumme verwenden möchte, möchte ich die Daten in zwei Spalten aktualisieren. Wie aktualisiere ich diese beiden Zeilen in 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粉161939752
P粉161939752

Antworte allen(1)
P粉642436282

我不知道您的用例的所有细节(例如您如何获取用户已使用的量),但是,以下概述了解决您的问题的一种方法。

我为此示例创建了一个 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()
    ]);
  1. 首先,我们运行查询来对给定用户used字段值进行求和(总计)
  2. 接下来,我们通过从第 1 步中获得的总额中扣除已使用的金额(在您的示例中为 1500)来计算 $remaining 金额
  3. 最后,我们更新表中给定用户每一行的剩余

如上所述,如何从表中获取相关行取决于您,使用 user_id 只是一个示例,但您可以使用 transaction id 或其他对您的用例有意义。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage