Maison  >  Questions et réponses  >  le corps du texte

Laravel Eloquent renvoie 0 si la valeur mise à jour est la même que les données précédentes dans la base de données

J'ai un problème dans Laravel 8, lorsque j'exécute la requête ci-dessous pour la première fois, cela fonctionne bien sans aucun problème, mais lorsque je la réexécute, elle affiche toujours un message d'échec, à moins que je ne change la valeur "isprocess" pour être différent de la mise à jour précédente.

Comment continuer à afficher le message de réussite même si la valeur mise à jour reste la même ?

$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 Il y a quelques jours376

répondre à tous(1)je répondrai

  • P粉262926195

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

    La méthode update() du générateur de requêtes renvoie le nombre de lignes affectées.

    La valeur de la vérification de l'échec ou du succès n'est pas exacte car exécuter deux fois la même requête fera que la deuxième requête n'affectera aucune ligne et renverra donc 0, ce qui donne false

    Si une erreur se produit, une exception sera levée

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

    répondre
    0
  • Annulerrépondre