Laravel-事务回滚不起作用

时间:2019-03-10 12:34:47

标签: php laravel transactions

我有用于保存用户的代码和用于发送邮件的代码,但是如果保存或发送邮件有错误,我想回滚,这是我的代码:

\DB::beginTransaction();

try{
    $user->save();
    //role
    $user->attachRole($role);
    //send email

    \DB::commit();
    Mail::to($user->email)->send(new ActivationCode($user));
    return response()->json([
        'status' => 'success',
        'message' => 'Berhasil mendaftar, cek email anda untuk mendapatkan kode aktivasi'
    ], 201);    

}catch(\Exception $e){
    \DB::rollback();
    return response()->json([
        'status' => 'fail',
        'message' => 'Terjadi kesalahan, harap periksa kembali form pendaftaran'
    ], 400);  
}   

邮件代码是故意出错的。

问题:已达到捕获量,但数据仍插入数据库中

1 个答案:

答案 0 :(得分:2)

您必须首先发送邮件,然后提交更改。

this.ingredients[ingredientInList].amount = parseInt(this.ingredients[ingredientInList].amount) + parseInt(ingredient.amount);