Rumah  >  Soal Jawab  >  teks badan

Laravel Eloquent mengembalikan 0 jika nilai yang dikemas kini adalah sama dengan data sebelumnya dalam pangkalan data

Saya menghadapi masalah dalam laravel 8, apabila saya menjalankan pertanyaan di bawah buat kali pertama, ia berfungsi dengan baik tanpa sebarang masalah, tetapi apabila saya menjalankannya semula, ia sentiasa menunjukkan mesej kegagalan, melainkan saya menukar nilai "isprocess " berubah menjadi berbeza dengan kemas kini sebelum ini.

Bagaimana untuk terus memaparkan mesej kejayaan walaupun nilai yang dikemas kini kekal sama?

$updateIsProses = DB::table('pricelist_naikharga')->whereDate('tanggal', '<=', '2022-05-01')->update(["isproses" => 1]);

       if($updateIsProses){
            echo outputJson(200, "BerhasilSuccess");
       }else{
            echo outputJson(500, "Fail");
       }

P粉662361740P粉662361740180 hari yang lalu336

membalas semua(1)saya akan balas

  • P粉262926195

    P粉2629261952024-03-28 00:38:46

    Kaedah update() dalam pembina pertanyaan mengembalikan bilangan baris yang terjejas.

    Nilai semakan untuk kegagalan atau kejayaan tidak tepat kerana menjalankan pertanyaan yang sama dua kali akan menyebabkan pertanyaan kedua tidak menjejaskan mana-mana baris dan oleh itu mengembalikan 0, yang menilai kepada false

    Jika ralat berlaku, pengecualian akan dilemparkan

    try {
        $updatedRowCount = DB::table('pricelist_naikharga')->whereDate('tanggal', '<=', '2022-05-01')->update(["isproses" => 1]);
    catch (\Exception $e) {
        echo outputJson(500, "Fail");
    }
    
    echo outputJson(200, "BerhasilSuccess, affected Rows: ".$updatedRowCount);

    balas
    0
  • Batalbalas