You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel创建数据前删除指定列值为1的行出错:误删所有旧数据

问题解决:Laravel中错误删除所有数据的修复

你的核心需求是在创建新数据前,删除penjualan表中status_pesanan列值为1的所有行,但原代码误用了分组统计逻辑,导致意外删除全表旧数据。以下是修复方案:

正确的删除逻辑

替换原代码中错误的删除语句,直接通过where条件精准匹配目标数据:

DB::table('penjualan')
    ->where('status_pesanan', 1)
    ->delete();

原代码错误分析

原代码里的groupBy('status_pesanan')->havingRaw('COUNT(status_pesanan) = 1')是在按status_pesanan分组后,删除行数等于1的分组对应的所有数据,这和你要删除status_pesanan=1的需求完全无关。当表中存在多个分组满足行数为1的条件时,就会批量删除大量非目标数据,甚至全表数据。

完整修正后的Create方法

public function create()
{
    // 仅删除status_pesanan值为1的行
    DB::table('penjualan')
        ->where('status_pesanan', 1)
        ->delete();

    $penjualan = new Penjualan();    
    $penjualan->nama_pemesan = 1;
    $penjualan['no_nota'] = tambah_nol_didepan($penjualan->no_nota+1, 5);  
    $penjualan->alamat_pemesan = 1;
    $penjualan->telepon_pemesan = 1;
    $penjualan->acc_desain = 1;
    $penjualan->total_item = 0;
    $penjualan->total_harga = 0;
    $penjualan->diskon = 0;
    $penjualan->bayar = 0;
    $penjualan->diterima = 0;
    $penjualan->id_user = auth()->id();
    $penjualan->save();

    session(['id_penjualan' => $penjualan->id_penjualan]);
    return redirect()->route('transaksi-baru.index');
}

内容的提问来源于stack exchange,提问作者Firdan Mahendra Wardana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 02:10:25