Laravel 5 Larvel:执行一次查询更新,如果成功,则执行下一次,否则,两次都不执行

Laravel 5 Larvel:执行一次查询更新,如果成功,则执行下一次,否则,两次都不执行,laravel-5,laravel-5.2,laravel-5.1,Laravel 5,Laravel 5.2,Laravel 5.1,因此,我想用相同的值更新两个不同的用户帐户 场景:用户1向用户2转账: $transfer_from = $account->decrement('balance', $amount); $transfer_to = Account::where('user_wallet_address', $receiver_wallet_address)->increment('balance', $amount); 但是,我想要的是这样的: $account->decrement('

因此,我想用相同的值更新两个不同的用户帐户

场景:用户1向用户2转账:

$transfer_from = $account->decrement('balance', $amount);

$transfer_to = Account::where('user_wallet_address', $receiver_wallet_address)->increment('balance', $amount);
但是,我想要的是这样的:

$account->decrement('balance', $amount)->$transfer_to;
中所述,如果减量成功,则更新另一个用户的余额,否则,两者都将失败


想法?

请使用数据库事务功能

请参见下面的代码示例:

public function readRecord() {
    DB::beginTransaction();
    try {
        // put your code here in try block

         $transfer_from = $account->decrement('balance', $amount);
         $transfer_to = Account::where('user_wallet_address', $receiver_wallet_address)->increment('balance', $amount); 
        DB::commit();
    } catch (Exception $ex) {
        // If any failure case generate, it will rollback the DB operations automatically.
        DB::rollBack();
        echo $ex->getMessage() . $ex->getLine();
    }
我希望这对你有帮助。在这种情况下,如果生成任何失败案例,它将自动恢复DB移位,您无需执行任何操作

参考URL:

您要查找的是一个。