Транзакции Laravel не откатываются при исключении в MySQL с движком InnoDB - PullRequest
0 голосов
/ 18 октября 2018

У меня есть эта транзакция, и все мои таблицы 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']);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...