我不能通过$Betrag减少/增加"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();
}发布于 2019-06-09 00:39:53
有几件事需要测试。首先,你确定有一个非零/非空值附加到request('bertag')吗?我不知道这是什么,我习惯于看到一个变量被注入到方法参数中,如下所示:
public function Transfer(Request $request){ ... }然后使用这个注入的变量,如下所示:
self::Transfer_execute($Empfänger, $Sender, $request->get('betrag'));如果这对您有效,那么另一件事可能是您正在将$Sender和$Empfänger的旧值传递到最终的保存方法中。例如,您可能会成功地将它们保存在Transfer_execute方法中,但随后您会将这两个变量的原始值传递回Transfer_save。我不知道Transfer_save方法在做什么--但是如果它涉及到变量,它们将不是上面最初保存的变量,而是在保存之前的变量--您没有在transfer_execute方法中向它们传递任何东西。
HTH
https://stackoverflow.com/questions/56508078
复制相似问题