首頁  >  問答  >  主體

如果更新的值與資料庫中的先前資料相同,Laravel Eloquent回傳0

我在laravel 8 中遇到問題,當我第一次運行下面的查詢時,它可以正常工作,沒有任何問題,但是當我重新運行它時,它總是顯示失敗訊息,除非我將“isprocess”值變更為與先前的更新有所不同。

即使更新後的值保持不變,如何繼續顯示成功訊息?

$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 天前373

全部回覆(1)我來回復

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

    回覆
    0
  • 取消回覆