Eloquent: обновление значения в базе данных - PullRequest
1 голос
/ 08 июня 2019

Я не могу уменьшить / увеличить значение "Kontostand" (double) на $ Betrag

Модели $ 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 Ответ

1 голос
/ 08 июня 2019

Пара вещей для тестирования.Во-первых, вы уверены, что к 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...