laravel事务不会在异常时回滚

htrmnn0y  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(294)

我有这个事务,我所有的mysql表都使用innodb引擎:

\DB::beginTransaction();
try{
    User::create([
        'name' => 'test',
        'status' => 1
    ]);
    array_push($test_array, ['test']);
    \DB::commit();

} catch(\Exception $e){
    \DB::rollBack();
}

如果我 dump() 例外情况是:
array\u push()要求参数1为array,给定null
因为 $test_array 为空。但是,事务不会回滚,并且 user 仍在创建。我不知道我做错了什么。
我也会得到同样的结果:

\DB::transaction(function () {

    User::create([
        'name' => 'test',
        'status' => 1
    ]);
    array_push($test_array, ['test']);
});

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题