Heim  >  Fragen und Antworten  >  Hauptteil

Laravel Eloquent gibt 0 zurück, wenn der aktualisierte Wert mit den vorherigen Daten in der Datenbank übereinstimmt

Ich habe ein Problem in Laravel 8. Wenn ich die folgende Abfrage zum ersten Mal ausführe, funktioniert sie ohne Probleme, aber wenn ich sie erneut ausführe, wird immer eine Fehlermeldung angezeigt, es sei denn, ich ändere den Wert „isprocess“ in „ anders als beim vorherigen Update.

Wie kann die Erfolgsmeldung weiterhin angezeigt werden, obwohl der aktualisierte Wert gleich bleibt?

$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粉662361740229 Tage vor378

Antworte allen(1)Ich werde antworten

  • P粉262926195

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

    查询生成器中的 update() 方法返回受影响的行数。

    检查失败或成功的值不准确,因为运行两次相同的查询将使第二个查询不影响任何行,因此返回 0,其计算结果为 false

    如果发生错误,将会抛出异常

    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);

    Antwort
    0
  • StornierenAntwort