Cara agar dapat update data laravel yg tidak boleh ada duplikasi data

Halo semuanya, pengen bertanya. Jadi saya ada biaya pengantaran yg di dalamnya ada kolom id, unit_id, rute_asal, rute_tujuan, dan biaya_pengataran. nah, untuk unit_id, rute asal dan tujuan itu tidak boleh duplikat dengan data yg sudah ada. saat insert data, semuanya lancar tapi terdapat masalah saat update data. Masalahnya saat saya cuma pengen update biaya pengantarannya saja tapi dapat message bahwa data yg diinputkan itu duplikat. Padahal itu data dia sendiri. Bagaimana ya solusinya? terima kasih sebelumnya.

 public function update(Request $request, $id)
    {
        $request->validate(
            [
                'unit_id' => 'required',
                'rute_asal' => 'required|regex:/^[\pL\s\-]+$/u',
                'rute_tujuan' => 'required|regex:/^[\pL\s\-]+$/u',
                'biaya_pengantaran' => 'required|numeric',
            ],
            [
                'unit_id.required' => 'Unit tidak boleh kosong!',
                'rute_asal.required' => 'Rute asal tidak boleh kosong!',
                'rute_tujuan.required' => 'Rute tujuan tidak boleh kosong!',
                'biaya_pengantaran.required' => 'Biaya pengantaran tidak boleh kosong!',
                'rute_asal.regex' => 'Rute asal tidak valid!',
                'rute_tujuan.regex' => 'Rute tujuan tidak valid!',
                'biaya_pengantaran.numeric' => 'Biaya pengantaran harus berupa angka!'
            ]
        );

        $unit = $request->unit_id;
        $asal = $request->rute_asal;
        $tujuan = $request->rute_tujuan;
        $cek = BiayaPengantaran::where(['unit_id' => $unit, 'rute_asal' => $asal, 'rute_tujuan' =>  $tujuan])->first();

        $biaya = BiayaPengantaran::find($id);

        if (!$cek) {
            $biaya->update([
                'unit_id' => $request->unit_id,
                'rute_asal' => $request->rute_asal,
                'rute_tujuan' => $request->rute_tujuan,
                'biaya_pengantaran' => $request->biaya_pengantaran,
            ]);
            return redirect('/biaya_pengantaran')->with([
                'message' => 'Data berhasil diperbarui',
                'success' => true
            ]);
        } else {
            throw ValidationException::withMessages([
                'unit_id' => 'Biaya pengantaran untuk unit dan rute pengantaran ini sudah diinputkan!',
                'rute_asal' => 'Rute asal untuk unit dan rute pengantaran ini sudah diinputkan!',
                'rute_tujuan' => 'Rute tujuan untuk unit dan rute pengantaran ini sudah diinputkan!'
            ]);
        }
    }
avatar aryarizkysandi
@aryarizkysandi

1 Kontribusi 0 Poin

Dipost 1 tahun yang lalu

Tanggapan

udah dapat solusinya wkwkkw

kalau sudah dapat,, bisa di share jawabannya di jawaban dan kasi jawaban benar supaya kami tahu bahwa pertanyaan ini sudah terjawab (usahakan baca rule, karena hal itu ada di rule)

Belum ada Jawaban. Jadi yang pertama Jawaban

Login untuk ikut Jawaban