雄辩的:更新数据库中的值

时间:2019-06-08 16:15:17

标签: laravel eloquent

我无法将$ Kettostand的“ Kontostand”(加倍)值降低/增加

$ Sender和$Empfänger模型很好,可以从数据库中成功选择

public function Transfer(){
    //Models werden erstellt
    $Sender = konto::find(request('SenderID'));
    $Empfänger = self::getModelbyIBAN(request('EmpfängerIban'));

    echo $Sender;
    echo $Empfänger;

    //Überweisung wird getätigt
    self::Transfer_execute($Empfänger, $Sender, request('betrag'));


    //Überweisungen werden für jedes Konto im Kontobewegungs-table gespeichert
    self::Transfer_save($Empfänger, "-", request('betrag'));
    self::Transfer_save($Sender, "+", request('betrag'));

}

私有函数Transfer_execute($Empfänger,$ Sender,$ Betrag){

    $SenderNeuerKontostand = $Sender->kontostand - $Betrag;
    $EmpfängerNeuerKontostand = $Empfänger->kontostand + $Betrag;

    echo "neuer Kontostand Sender ";
    echo $SenderNeuerKontostand;
    echo "<br>neuer Kontostand Empfänger ";
    echo $EmpfängerNeuerKontostand;

    $Sender->kontostand = $SenderNeuerKontostand;
    $Empfänger->kontostand = $EmpfängerNeuerKontostand;


    $Sender->save();
    $Empfänger->save();
}

我希望两种模型的数据库中“ kontostand”的值都可以更改,但是不会发生。

编辑:

这里有transfer_save方法。

它将在另一个表中创建一个新条目。效果很好。

  private function Transfer_save($Konto, $plusminus, $Betrag){
        $kontobewegung = new kontobewegung;
        $kontobewegung->PlusOderMinus = $plusminus;
        $kontobewegung->KontoID = $Konto->ID;
        $kontobewegung->Betrag = $Betrag;

        $kontobewegung->save();
    }

1 个答案:

答案 0 :(得分:1)

要测试的事物。首先,您确定request('bertag')附加了一个非零/非空值吗?我不知道这是什么,我习惯于看到这样的方法参数中注入的变量:

public function Transfer(Request $request){ ... }

然后使用注入的变量,例如:

self::Transfer_execute($Empfänger, $Sender, $request->get('betrag'));

如果这对您有用,那么另一件事可能是您正在将$Sender$Empfänger的旧值传递到最终的save方法中。 IE,您可能已经成功地将它们保存在Transfer_execute方法中,但是随后您将这两个变量的原始值传递回了Transfer_save中。我不知道Transfer_save方法在做什么-但是,如果它接触到var,它们将不会是上面最初保存的内容,而是保存之前的var-您没有将任何内容传回通过transfer_execute方法进入它们。

HTH