У меня есть эта транзакция, и все мои таблицы MySQL используют движок InnoDB:
\DB::beginTransaction();
try{
User::create([
'name' => 'test',
'status' => 1
]);
array_push($test_array, ['test']);
\DB::commit();
} catch(\Exception $e){
\DB::rollBack();
}
Если I dump()
исключение, оно говорит:
array_push ()ожидает, что параметр 1 будет массивом, ноль задан
, поскольку $test_array
равен нулю.Однако транзакция не выполняется, и user
все еще создается.Я не знаю, что я делаю неправильно.
Я получаю тот же результат, делая это тоже:
\DB::transaction(function () {
User::create([
'name' => 'test',
'status' => 1
]);
array_push($test_array, ['test']);
});